Module: PSDNative::Color

Defined in:
ext/psd_native/psd_native_ext.c

Class Method Summary collapse

Class Method Details

.cmyk_to_rgb(c, m, y, k) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'ext/psd_native/color.c', line 3

VALUE psd_native_cmyk_to_rgb(VALUE self, VALUE c, VALUE m, VALUE y, VALUE k) {
  int r, g, b;

  r = psd_clamp_int((65535 - (FIX2INT(c) * (255 - FIX2INT(k)) + (FIX2INT(k) << 8))) >> 8, 0, 255);
  g = psd_clamp_int((65535 - (FIX2INT(m) * (255 - FIX2INT(k)) + (FIX2INT(k) << 8))) >> 8, 0, 255);
  b = psd_clamp_int((65535 - (FIX2INT(y) * (255 - FIX2INT(k)) + (FIX2INT(k) << 8))) >> 8, 0, 255);

  VALUE result = rb_hash_new();
  rb_hash_aset(result, ID2SYM(rb_intern("r")), INT2FIX(r));
  rb_hash_aset(result, ID2SYM(rb_intern("g")), INT2FIX(g));
  rb_hash_aset(result, ID2SYM(rb_intern("b")), INT2FIX(b));

  return result;
}