![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ггрфика. Image. [D6]
Artur © (2003-11-12 16:23:00)Кто нибудь занет процедуру, как можно в Image отобразить негатив просматриваемого рисунка? Заранее спасибо!
miek (2003-11-22 23:07:00) [1]Если б не проверял, не сказал бы. Я сравнивал со своим циклом, оптимизированным под параллельность (по 2,4,8 DWORD-ов за итерацию) и получил вариант только на 15-20% более быстрый, чем InvertRect. Даже MMX не поможет.
Fenik (2003-11-22 22:44:00) [2]А ты проверь.
miek (2003-11-13 21:34:00) [3]Гонишь.
Fenik (2003-11-13 09:36:00) [4]Моя процедура быстрее :-))
miek (2003-11-12 18:17:00) [5]Да не парьте мОзги человеку.
Есть такая процедура в WinAPI - InvertRect.
Все, хватит флейма.
Fenik (2003-11-12 17:03:00) [6]
procedureInvertBitmap(Bitmap: TBitmap);
typeTRGB = record
B, G, R: Byte;
end;
pRGB = ^TRGB;
varx, y: Integer;
Dest: pRGB;
begin
Bitmap.PixelFormat := pf24Bit;
fory := 0 toBitmap.Height - 1 do begin
Dest := Bitmap.ScanLine[y];
forx := 0 toBitmap.Width - 1 do begin
withDest^ do begin
R := 255 - R;
G := 255 - G;
B := 255 - B;
end;
Inc(Dest);
end;
end;
end;
Darthman (2003-11-12 16:35:00) [7]А что так сложно сделать?
Pixel:=;АААААААА XOR Pixel; И так со всеми. Вот и негатив.
Darthman (2003-11-12 16:35:00) [8]Прошу прощения, конечно же Pixel:=$FFFFFFFF XOR Pixel; :)