Конференция "Media" » Кто знает алгоритм смешивания красок? [D6, Win2k, WinXP]
 
  • Валигози © (25.09.09 16:48) [0]
    Речь идёт не о смешивании разноцветных световых лучей, а о смешивании именно красок (гуашь, акварель и т.п. :) )
    Известно, что если смешать лучи всевозможных цветов, то получится белый, однако если смешать все краски - получится серая (почти чёрная) масса :)
    Например если смешать жёлтую с синей получится зелёная краска, да ещё в зависимости от пропорции разной интенсивности. Ясно, что алгоритм значительно отличается от алгоритма смешивания цветных лучей, однако я никак не соображу зависимости, да и в интернете найти не удалось...
  • CrytoGen (25.09.09 18:02) [1]
    можешь почитать про RGB и CMY
  • O.Nick © (02.10.09 15:59) [2]
    Посмотри про CMY (cyan magenta yellow)
    Суть в том, что при смешении пигментов происходит вычитание цвета, поэтому в идеале смешение всех цветов (вычитание) дает черный.
    Посмотри как работает струйный принтер.
  • Inovet © (02.10.09 21:14) [3]
    > [0] Валигози ©   (25.09.09 16:48)

    Здесь было
    http://pda.delphimaster.net/?id=1249935362&n=3
  • Дон (01.11.09 19:58) [4]
    Может это поможет:
    Procedure Perexod(FileName_1, FileName_2 : string);
    const
     count = 100;
    var
     i: integer;
     x, y: integer;
     jp1, jp2    : TJPEGImage;
     bm, bm1, bm2: TBitMap;
     p1, p2, p: PByteArray;
     c: integer;
     k: integer;
    begin
      jp1:=TJPEGImage.Create;
      jp1.LoadFromFile(FileName_1);

      jp2:=TJPEGImage.Create;
      jp2.LoadFromFile(FileName_2);

      bm := TBitMap.Create;
      bm1 := TBitMap.Create;
      bm2 := TBitMap.Create;

      bm1.Assign(jp1);
      bm2.Assign(jp2);

     if bm1.Height < bm2.Height then
     begin
       bm.Height := bm1.Height;
       bm2.Height := bm1.Height;
     end
     else
     begin
       bm.Height := bm2.Height;
       bm1.Height := bm2.Height;
     end;
     if bm1.Width < bm2.Width then
     begin
       bm.Width := bm1.Width;
       bm2.Width := bm1.Width;
     end
     else
     begin
       bm.Width := bm2.Width;
      bm1.Width := bm2.Width;
     end;
     bm.PixelFormat := pf24bit;
     bm1.PixelFormat := pf24bit;
     bm2.PixelFormat := pf24bit;

     Form1.Canvas.Draw(0, 0, bm1);
     for i := 1 to count - 1 do
     begin
       for y := 0 to bm.Height - 1 do
       begin
         p := bm.ScanLine[y];
         p1 := bm1.ScanLine[y];
         p2 := bm2.ScanLine[y];
         for x := 0 to bm.Width * 3 - 1 do
           p^[x] := round((p1^[x] * (count - i) + p2^[x] * i) / count);
       end;

       Form1.Canvas.Draw(0, 0, bm);
       Form1.Caption := IntToStr(round(i / count * 100)) + '%';
       Application.ProcessMessages;
       if Application.Terminated then
         break;
     end;
     Form1.Canvas.Draw(0, 0, bm2);
     Form1.Caption := 'done';
     bm1.Destroy; bm2.Destroy; bm.Destroy;
     jp1.Free;
     jp2.Free;
    end;
  • AxelS (03.07.12 10:35) [5]
    Смешивание цветов световых лучей: среднее по RGB
    Смешивание цветов светофильтров: сумма (до FFFFFF) по RGB
  • delphin4ik © (06.07.12 16:36) [6]
    ПРИКОЛЬНО - СПАСИБО
  • delphin4ik © (06.07.12 16:38) [7]
    <a href="http://www.delphi-box.ru/forum/" title="ПРОГРАММИРОВАНИЕ ДЕЛЬФИ">Дельфи</a>
  • амамам (03.04.13 10:17) [8]
    http://www.ukravtoline.com.ua/arenda_avtobusa/ одесса аренда автобуса с водителем
  • sdvgfgf (21.09.13 10:11) [9]
    http://www.perevozki.ltd.ua/jevakuator/ вызвать эвакуатор
 
Конференция "Media" » Кто знает алгоритм смешивания красок? [D6, Win2k, WinXP]
Есть новые Нет новых   [118670   +54][b:0][p:0]