我在做一个处理图片的模块,请各位大虾指点。
解决方案 »
- wwquery组件的问题
- 如何获取当前可用的扫描仪?
- 如何解决clientdataset“Record not found or changed by another user”问题?
- 能提供一个实现抓取屏幕并生成JPG流的代码吗?
- 能解释一下table中的setkey和gotokey的具体用法吗?
- l_xiaofeng 小风同学!我好想你啊。
- 怎么用xlreport做Excel的模版?我要做一个在浏览报表的时候添加一个能生成Excel模版的功能~
- 我网上找一段代码。请问这是一个什么函数或方法GetModuleUsage。为什么我在程序内使用时说没有声明呢?怎么样声明呢?在什么地方声明?
- 初级问题:请问如何代替字符串中的某个字符,如代替'2003--3-24'中的'-'为'_'?
- 我要卖DELPHI程序
- 有无像windows资源管理器一样的能嵌入到form里的控件
- 有一个xml文件,它的结构是固定的,能否动态地将数据加到里面去??
你看看这个,如果需要更多的特效,就需要自己写代码,所谓明暗就是为了欺骗人的眼睛,你可以对没个像素做处理,这样可以给人整体上的效果
Function IntToByte(i: Integer): Byte;
Begin
If i > 255 Then Result := 255
Else If i < 0 Then Result := 0
Else Result := i;
End;
Var
p0: pbytearray;
rg, gg, bg, r, g, b, x, y: Integer;
Begin
For y := 0 To clip.Height - 1 Do
Begin
p0 := clip.scanline[y];
For x := 0 To clip.Width - 1 Do
Begin
r := p0[x * 3];
g := p0[x * 3 + 1];
b := p0[x * 3 + 2];
rg := (Abs(127 - r) * Amount) Div 255;
gg := (Abs(127 - g) * Amount) Div 255;
bg := (Abs(127 - b) * Amount) Div 255;
If r > 127 Then r := r + rg Else r := r - rg;
If g > 127 Then g := g + gg Else g := g - gg;
If b > 127 Then b := b + bg Else b := b - bg;
p0[x * 3] := IntToByte(r);
p0[x * 3 + 1] := IntToByte(g);
p0[x * 3 + 2] := IntToByte(b);
End;
End;
End;
// Clip.PixelFormat:=pf24BIT;如果是8位图,那么下面的算法错
For y := 0 To clip.Height - 1 Do
Begin
p0 := clip.scanline[y];
For x := 0 To clip.Width - 1 Do
Begin
...............