处理2 - 323 450
从草图的数据文件夹中的文件f.png中读取图像。放置图像并确定其边界。计算正确的位置并替换正确偏移的图像。
PImage p=loadImage("h.png");int a,b,c,d,x,y,w,i,n,m,t;a=w=p.width;c=i=p.height;clear();size(w,i,P2D);x=y=b=d=t=0;image(p,0,0);loadPixels();while(x<w*i){if(pixels[x]==color(255))t=1;x++;}x=0;background(255);image(p,0,0);loadPixels();while(y*w+x<w*i){if(pixels[y*w+x]!=color(255)){if(x<a)a=x;if(x>b)b=x;if(y<c)c=y;if(y>d)d=y;}x++;if(x==w){x=0;y++;}}n=(w-(b-a))/2;m=(i-(d-c))/2;clear();if(t>0)background(255);image(p,n-a,m-c);loadPixels();save("g.png");
可读版本:
PImage p=loadImage("h.png");
int a,b,c,d,x,y,w,i,n,m,t;
a=w=p.width;
c=i=p.height;
clear();
size(w,i,P2D);
x=y=b=d=t=0;
image(p,0,0);
loadPixels();
while(x<w*i)
{
if(pixels[x]==color(255))t=1;
x++;
}
x=0;
background(255);
image(p,0,0);
loadPixels();
while(y*w+x<w*i)
{
if(pixels[y*w+x]!=color(255))
{
if(x<a)a=x;
if(x>b)b=x;
if(y<c)c=y;
if(y>d)d=y;
}
x++;
if(x==w){x=0;y++;}
}
n=(w-(b-a))/2;
m=(i-(d-c))/2;
clear();
if(t>0)background(255);
image(p,n-a,m-c);
loadPixels();
save("g.png");
输出示例:
你可以在这里得到处理