الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تحويل من نظام ألوان إلى نظام ألوان أخر

مغلق
بدأه mef في 10 نوفمبر 2004 · 5 رد · 630 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سلام عليكم

الأخوة الكرام

سؤالي هو :

أريد تحويل من نظام ألوان rgb إلى نظام الألوان cmyk

و إذا كان هناك عنصر يعطي صندوق حوار cmyk

مثل فوفتوشوب أو كورل درو

و شكرا

#2

سلام

حدا يناقشنا حدا يرد علينا حدا يحكي معنا

كلمة

إريد الطباعة بنظام cmyk

#3

السلام عليكم

أخي الكريم

كنت وضعت شرح بسيط عن cmyk فربما الكثيرين لا يعلموا ما هو - شخصياً واحد من اولئك -.

شئ اخر يبدو انك لم تلجأ للطريقة التي ينصع بها حتى الخبراء google it .

ما علينا

اثناء البحث لقيت هذا الرابط

http://www.delphi3000.com/articles/article_306.asp?SK=

تحتاج لان تكون مسجل

انا سجلت هناك في ثواني وحصلت على الموضوع وهو :

Uploader: Bernhard Angerer
How do I convert an RGB color to a CMYK color? 

The following functions RGBTOCMYK() and CMYKTORGB() 
demonstrate how to convert between RGB and CMYK color 
spaces. Note: There is a direct relationship between RGB 
colors and CMY colors. In a CMY color, black tones are 
achieved by printing equal amounts of Cyan, Magenta, and 
Yellow ink. The black component in a CMY color is achieved 
by reducing the CMY components by the minimum of (C, M, 
and Y) and substituting pure black in its place producing a 
sharper print and using less ink. Since it is possible for a user 
to boost the C,M and Y components where boosting the black 
component would have been preferable, a ColorCorrectCMYK() 
function is provided to achieve the same color by reducing the 
C, M and Y components, and boosting the K component. 
                                             
Example: 

procedure RGBTOCMYK(R : byte; 
                    G : byte; 
                    B : byte; 
                    var C : byte; 
                    var M : byte; 
                    var Y : byte; 
                    var K : byte); 
begin 
  C := 255 - R; 
  M := 255 - G; 
  Y := 255 - B; 
  if C < M then 
    K := C else 
    K := M; 
  if Y < K then 
    K := Y; 
  if k > 0 then begin 
    c := c - k; 
    m := m - k; 
    y := y - k; 
  end; 
end; 

procedure CMYKTORGB(C : byte; 
                    M: byte; 
                    Y : byte; 
                    K : byte; 
                    var R : byte; 
                    var G : byte; 
                    var B : byte); 
begin 
   if (Integer(C) + Integer(K)) < 255 then 
     R := 255 - (C + K) else 
     R := 0; 
   if (Integer(M) + Integer(K)) < 255 then 
     G := 255 - (M + K) else 
     G := 0; 
   if (Integer(Y) + Integer(K)) < 255 then 
     B := 255 - (Y + K) else 
     B := 0; 
end; 

procedure ColorCorrectCMYK(var C : byte; 
                           var M : byte; 
                           var Y : byte; 
                           var K : byte); 
var 
  MinColor : byte; 
begin 
  if C < M then 
    MinColor := C else 
    MinColor := M; 
  if Y < MinColor  then 
    MinColor := Y; 
  if MinColor + K > 255 then 
    MinColor := 255 - K; 
  C := C - MinColor; 
  M := M - MinColor; 
  Y := Y - MinColor; 
  K := K + MinColor; 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
var 
  R : byte; 
  G : byte; 
  B : byte; 
  C : byte; 
  M : byte; 
  Y : byte; 
  K : byte; 
begin 
  R := 151; 
  G := 81; 
  B := 55; 
  Memo1.Lines.Add('R = ' + IntToStr(R)); 
  Memo1.Lines.Add('G = ' + IntToStr(G)); 
  Memo1.Lines.Add('B = ' + IntToStr(B)); 
  Memo1.Lines.Add('-------------------'); 
  RGBTOCMYK(R, G, B, C, M, Y, K); 
  Memo1.Lines.Add('C = ' + IntToStr(C)); 
  Memo1.Lines.Add('M = ' + IntToStr(M)); 
  Memo1.Lines.Add('Y = ' + IntToStr(Y)); 
  Memo1.Lines.Add('K = ' + IntToStr(K)); 
  Memo1.Lines.Add('-------------------'); 
  CMYKTORGB(C, M, Y, K, R, G, B); 
  Memo1.Lines.Add('R = ' + IntToStr(R)); 
  Memo1.Lines.Add('G = ' + IntToStr(G)); 
  Memo1.Lines.Add('B = ' + IntToStr(B)); 
  Memo1.Lines.Add('-------------------'); 
  RGBTOCMYK(R, G, B, C, M, Y, K); 
  c := c + 2; 
  m := m + 2; 
  y := y + 2; 
  ColorCorrectCMYK(C, M, Y, K); 
  Memo1.Lines.Add('C = ' + IntToStr(C)); 
  Memo1.Lines.Add('M = ' + IntToStr(M)); 
  Memo1.Lines.Add('Y = ' + IntToStr(Y)); 
  Memo1.Lines.Add('K = ' + IntToStr(K)); 
end;

أترك فهم الكود عليك واي تساؤلات الكل في الخدمة

CIONO1

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#4

كل الشكر أخي العزيز tmaaa

وانا مسجل في هذه الموقع (الإرتباط)

لكن لم أفهم ما قصدك ب google it

يرجى منك التوضيح لأنه في الموقع الذي وضعت إرتياط له لم أعرف كيف أقوم بالبحث

أكرر شكري

#5

السلام عليكم

انا حطيت الموضوع المنشور هناك

مو شايف الكود الطويل في ردي؟ :D

google it يعني ابحث عن أي تساؤل لك اولا في الانترنت عن طريق google او اي محرك بحث اخر وان ساءت الظروف ضع سؤالك هنا والكل سيسرون بتقديم العون لك .

معلش ربما تشعر ان في طريقة ردي نوع من التهكم لكن القصد غير ذلك تماماً - حتتعود عليها- :)

بدنا شرح عن cmyk .

CIONO1

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#6

سلام

cmyk هي ألون طباعية أي أن اللون الذي تراه على شاشة الكمبيوتر هو نفسه تماماً سيطبع على الطابعة بعكس ألوان rgb التي هي ألوان مرئية تستخدم للعروض

هذا كل ما أعرفه عنه

الأن

هل لديك صندوق حوار عن ألون cmyk و Rgb و lab و .....

مثل الفوتوشوب colordialogs

هذا الموضوع مغلق.

مواضيع مشابهة