Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сделать изображения чёрно-белым [D6, WinXP]


Novenkij ©   (2003-08-26 18:54:00) 

Как перевести цветное изображение в чёрно-белое ( пример: PhotoShop - Hue/Saturation )


Asteroid   (2003-08-31 23:03:00) [1]

> Fenik © (30.08.03 22:02) [12]
Обратно можно, если есть оригинал. Иначе - только под руководством оператора можно раскрасить ч/б в цвет.


Fenik   (2003-08-30 22:09:00) [2]

procedure GrayBmp(Bitmap: TBitmap);
var n: Byte;
x, y: Integer;
Dest: pRGBTriple;
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
n := Trunc((rgbtBlue + rgbtGreen + rgbtRed)/3);
rgbtBlue := n;
rgbtGreen := n;
rgbtRed := n;
end;
Inc(Dest);
end;
end;
end;


Fenik   (2003-08-30 22:02:00) [3]

Интересно, а как это обратно можно сделать?


mrAld   (2003-08-29 12:33:00) [4]

Скажу понятнее:
Во время игры (3d в частности) менять цветное на ч/б и обратно.


MBo   (2003-08-29 07:32:00) [5]

>miek
Я подозреваю, что mrAld имел в виду скорость работы - допустим, обесцвечивание десятка контекстов размером в экран в секунду


miek   (2003-08-28 21:33:00) [6]

1) Реальное время - это когда можно ТОЧНО задать максимальное время от наступления события до вызова процедуры, которая должна на него реагировать. Ни одна Маздайка под это определение не подпадает.


MBo   (2003-08-28 17:49:00) [7]

>чтобы в реальном времени?
1) определение реального времени?
2) что именно вызывает трудности?


HolACost!   (2003-08-28 16:27:00) [8]

Real Time OS нужна для начала! Гы!


mrAld   (2003-08-28 15:54:00) [9]

В серое или двуцветное?

Ну в двуцветное я и так могу, а в серое (с градациями)? И чтобы в реальном времени?


MBo   (2003-08-28 14:52:00) [10]

>mrAld
В серое или двуцветное?
и то, и другое делается достаточно быстро


mrAld   (2003-08-28 14:41:00) [11]

А вот вопрос полюбопытнее: как перевести всё изображение с контекста устройства в Ч/Б Real Time Mode? А? Каков вопросец?


HolACost!   (2003-08-27 11:08:00) [12]


// Стырено, но не помню откуда
function pavRGBtoGray(AColor:TColor):TColor;
var
Gray: Byte;
begin
AColor := ColorToRGB(AColor);
Gray := Round(
0.30 * Byte(AColor) +
0.59 * Byte(AColor shr 8) +
0.11 * Byte(AColor shr 16)
);
Result := Gray or (Gray shl 8) or (Gray shl 16);
end;


Ilya_   (2003-08-27 04:58:00) [13]

Поэксперементируй CopyMode с разными параметрами.


miek   (2003-08-26 20:05:00) [14]

Например, рассчитать среднее от R,G,B и присвоить всем трем компонентам.


Наверх

Титульная страница Поиск, карта сайта Написать письмо