测试一下项目上传系统。
效果如下(受图片大小限制被迫糊成一团):

该项目仅供参考,正确写法是使用getbuff而不是一堆putpixel和getpixel。
#include <graphics.h>
PIMAGE glass(PIMAGE t){
//创建增量数组
int ax[]={-1,0,1,-1,1,-1,0,1};
int ay[]={-1,-1,-1,0,0,1,1,1};
PIMAGE f=newimage(getwidth(t),getheight(t));//创建储存边缘的对象
PIMAGE ft=newimage(getwidth(t)-2,getheight(t)-2);//创建储存中部图像的对象
color_t c;
int r;
int xt,yt;
f=t;//此处我们不取出边缘所有的点,而是直接克隆
//随机取点
for(int y=1;y<getheight(t)-1;y++){
for(int x=1;x<getwidth(t)-1;x++){
r=random(8);
xt=x+ax[r];
yt=y+ay[r];
c=getpixel(xt,yt,t);
putpixel(x-1,y-1,c,ft);
}
}
putimage(f,2,2,ft);//将处理好的中部图像直接盖在f上,f的中部被ft覆盖,故f中只剩下未处理的边缘和处理好的中部
delimage(ft);
return f;
}
int main(){
initgraph(500,500,0);
PIMAGE t=newimage();
PIMAGE f=newimage();
getimage(t,"Image.png");
initgraph(getwidth(t),getheight(t));
setcaption("毛玻璃滤镜效果");
getimage(f,t,getwidth(t)/2,0,getwidth(t),getheight(t));
imagefilter_blurring(f,0xFF,0x100,0,0,0,0);//处理前先将图片模糊
for(int i=0;i<3;i++)
f=glass(f);
putimage(t,getwidth(t)/2,0,f);
putimage(0,0,t);
saveimage(t,"hfile.jpg");
getch();
}