在photoshop中,选区有抗锯齿功能,至于不规则选区的实现我们可以利用mask图实现,也就是一副和图像一样大小的256色灰度图,在未开始抗锯齿时,选中的部分为白色,未选中的为黑色,如果开始抗锯齿,则在选区的边缘颜色有一个过渡,一般在水平方向或者垂直方向只涉及到两个像素,请问这个过渡大概是个什么算法,好像不是普通的模糊。
解决方案 »
- 给大家分享一本好书。
- windows关机效果
- 请问如何在memo控件中 输入数据的每个段落后加入一条细线,使段落分明
- 一个错误提示?谁能解决?
- MainMenu的菜单图标是.bmp文件形式.放到上面太大了,怎么变成.icp的形式,或者其他的方法阿!谢谢了
- 扩充ListView的选择框
- 放分!
- 我的delphi系统中没有第三方控件,如何是好??
- 求助问题,只知道菜单控件TMuneItem的Caption 怎样写禁掉该TMuneItem方法
- 用ADO对一个多表的数据库进行操作时是否需要2个ADOQuery?
- Delphi什么时候写代码象C#一样的很方便的智能提示呀???
- 500分求关于DLL中,如何动态加载JPEG图片的问题?
XFinal, YFinal: Integer);
var
Memo, x, y: Integer; (* Composantes primaires des points environnants *)
p0, p1, p2: pbytearray;begin
if XFinal < XOrigin then
begin
Memo := XOrigin; XOrigin := XFinal; XFinal := Memo; end; (* Inversion des valeurs *)
if YFinal < YOrigin then
begin
Memo := YOrigin; YOrigin := YFinal; YFinal := Memo; end; (* si diff俽ence n俫ative*)
XOrigin := max(1, XOrigin);
YOrigin := max(1, YOrigin);
XFinal := min(clip.width - 2, XFinal);
YFinal := min(clip.height - 2, YFinal);
clip.PixelFormat := pf24bit;
for y := YOrigin to YFinal do
begin
p0 := clip.ScanLine[y - 1];
p1 := clip.scanline[y];
p2 := clip.ScanLine[y + 1];
for x := XOrigin to XFinal do
begin
p1[x * 3] := (p0[x * 3] + p2[x * 3] + p1[(x - 1) * 3] + p1[(x + 1) * 3]) div 4;
p1[x * 3 + 1] := (p0[x * 3 + 1] + p2[x * 3 + 1] + p1[(x - 1) * 3 + 1] + p1[(x + 1) * 3 + 1]) div 4;
p1[x * 3 + 2] := (p0[x * 3 + 2] + p2[x * 3 + 2] + p1[(x - 1) * 3 + 2] + p1[(x + 1) * 3 + 2]) div 4;
end;
end;
end;procedure AntiAlias(clip: tbitmap);
begin
AntiAliasRect(clip, 0, 0, clip.width, clip.height);
end;
原理是取某点的上下左右的平均值做为新值
p1[x * 3 + 1] := (p0[x * 3 + 1] + p2[x * 3 + 1] + p1[(x - 1) * 3 + 1] + p1[(x + 1) * 3 + 1]) div 4;
p1[x * 3 + 2] := (p0[x * 3 + 2] + p2[x * 3 + 2] + p1[(x - 1) * 3 + 2] + p1[(x + 1) * 3 + 2]) div 4;你这里似乎后面的过程的取样点已经不是原始图像了,而是修改后了的吧。
CSDN无法上传图片了
CSDN无法上传图片了