Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.16;
Скачать: CL | DM;

Вниз

Grayscale > X-Scale   Найти похожие ветки 

 
X-Disa   (2004-10-10 11:52) [0]

Всем привет! У меня есть grayscale изображение. И есть цвет (например clred). Задача такая: Из Grayscale сделать redscale и т.д. Чтоб черный цвет в данном случае заменился на красный, а остальные - на его оттенки. Белый так и должен остаться белым.


 
Fenik   (2004-10-10 12:05) [1]

Дам тебе заготовку.
С алгоритмом самостоятельно разбирайся.

type
 TRGB = record
   B, G, R: Byte;
 end;
 pRGB = ^TRGB;

procedure Proc(Bitmap: TBitmap);
var Dest: pRGB;
   X, Y: Word;
begin
 Bitmap.PixelFormat := pf24Bit;
 for Y := 0 to Bitmap.Height - 1 do begin
   Dest := Bitmap.ScanLine[y];
   for X := 0 to Bitmap.Width - 1 do begin
     with Dest^ do begin
       B := // синий
       G := // зеленый
       R := // красный
     end;
     Inc(Dest);
   end;
 end;
end;


Например, инверсия:

procedure InvertBitmap(Bitmap: TBitmap);
var x, y: Integer;
   Dest: pRGB;
begin
 Bitmap.PixelFormat := pf24Bit;
 for y := 0 to Bitmap.Height - 1 do begin
   Dest := Bitmap.ScanLine[y];
   for x := 0 to Bitmap.Width - 1 do begin
     with Dest^ do begin
       R := 255 - R;
       G := 255 - G;
       B := 255 - B;
     end;
     Inc(Dest);
   end;
 end;
end;


 
X-Disa   (2004-10-10 13:02) [2]

Спасибо конечно, но эти алгоритмы я уже давно знаю... Мне б найти сам алгоритм преобразования. Я один наисал, но он не совсем так как надо работает.


 
Mihey_temporary ©   (2004-10-10 13:43) [3]

http://delphibase.endimus.ru


 
Fenik   (2004-10-10 14:54) [4]

> X-Disa  (10.10.04 13:02) [2]
> Мне б найти сам алгоритм преобразования.


Ты думаешь, такой существует?



Страницы: 1 вся ветка

Текущий архив: 2005.01.16;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.046 c
4-1101395871
Kair
2004-11-25 18:17
2005.01.16


4-1101734555
dima_shapkin
2004-11-29 16:22
2005.01.16
Edit


1-1104358483
ariec
2004-12-30 01:14
2005.01.16
рег компонента


1-1104141336
SbtON
2004-12-27 12:55
2005.01.16
Идентификатор потока.


1-1104142701
ceval
2004-12-27 13:18
2005.01.16
подскажите пожалуста почему не полностью удаляется dir