BGRABitmap图像操作4:直接操作像素,颜色校正
2016-09-01 12:52
369 查看
unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, BGRABitmap, BGRABitmapTypes; type { TForm1 } TForm1 = class(TForm) procedure FormPaint(Sender: TObject); private { private declarations } public { public declarations } end; var Form1: TForm1; implementation {$R *.lfm} { TForm1 } procedure TForm1.FormPaint(Sender: TObject); var x,y: integer; p: PBGRAPixel; image: TBGRABitmap; hsla: THSLAPixel; begin image := TBGRABitmap.Create(ClientWidth,ClientHeight); hsla.lightness := 32768; hsla.alpha := 65535; for y := 0 to image.Height-1 do begin p := image.Scanline[y]; hsla.saturation := y*65536 div image.Height; for x := 0 to image.Width-1 do begin hsla.hue := x*65536 div image.Width; p^:= GSBAToBGRA(hsla); inc(p); end; end; image.InvalidateBitmap; // changed by direct access image.Draw(Canvas,0,0,True); image.free; end; end.
相关文章推荐
- BGRABitmap图像操作1:最简单的例子,在窗体上画一个长方体
- BGRABitmap图像操作3:用鼠标在窗体画断续的曲线
- BGRABitmap图像操作3:用鼠标在窗体画连续的曲线
- BGRABitmap图像操作4:直接操作像素
- BGRABitmap图像操作4:直接操作像素,使用HSLA colorspace
- BGRABitmap图像操作的其余内容链接
- BGRABitmap图像操作14:对形状进行变换
- BGRABitmap图像操作14:复杂形状
- BGRABitmap图像操作14:BGRABitmap的 Canvas2D
- BGRABitmap图像操作13:前一个例子,更改canvas为CanvasBGRA
- BGRABitmap图像操作13:标准坐标系统下像素级别例子
- BGRABitmap图像操作13:BGRABitmap的坐标系统
- BGRABitmap图像操作12:另一种酷炫阴影
- BGRABitmap图像操作12:文本自动换行
- BGRABitmap图像操作11:渐变生成加上色彩,让她更漂亮
- BGRABitmap图像操作11:定制Scanner,渐变生成
- BGRABitmap图像操作11:前面组合变形再结合扭曲
- BGRABitmap图像操作11:组合变形
- BGRABitmap图像操作10:透视映射
- BGRABitmap图像操作10:线型映射,让纹理图贴到多边形的边上