![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать изображения чёрно-белым [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 и присвоить всем трем компонентам.