| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Преобразование цветной картинки в серо-белую |
| Автор: Che modan 14.10.2003, 11:38 |
| Нужно цветную картинку вывести в серо-белой гамме. Каким способом ее преобразовать или изобразить? Т.е. имеется TBitmap, изобразить ее на TCanvas. |
| Автор: stab 14.10.2003, 18:02 |
| простейший и НЕ самый быстрый способ, быстрее будет через TBitmap.Scanline bmp: TBitmap; cnv: TCanvas; RGBColor, Gray: TColor; ... for i := 0 to bmp.Width - 1 do for j := 0 to bmp.Height - 1 do begin RGBColor := bmp.Canvas.Pixels[i, j]; Gray := Round((0.30 * GetRValue(RGBColor)) + (0.59 * GetGValue(RGBColor)) + (0.11 * GetBValue(RGBColor ))); cnv.Pixels[i, j] := RGB(Gray, Gray, Gray); end; |
| Автор: Ч 15.10.2003, 08:10 |
| А что известно, насчет быстрого способа? (В первом приближении я примерно так и сделал, попиксельно) |
| Автор: stab 15.10.2003, 10:13 | ||
можно и еще прооптимизировать, но для наглядности лучше так
|