如何去除图片上透明区域部分
最近在玩火焰纹章:风花雪月,然后就想上网找一下全CG下载,可是找到的都是这种:
虽然清晰度还可以,但总是有点不舒服,又不想一个一个去截图,观察了一下透明区域其实很规则,干脆写个代码去掉透明的部分再保存新图片就好了,试了下结果还行。
代码如下:
package main;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import javax.imageio.ImageIO;
public class Main {
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
String imgPath = "C:\\Users\\K.XC\\Desktop\\mage\\";
BufferedImage image=null;
int x_max=0;
int y_max=0;
for(int a=1;a<39;a++) {
image = ImageIO.read(new FileInputStream(imgPath+"0 ("+a+").png"));
for(int y=0;y<image.getHeight();y++) {
for(int x=0;x<image.getWidth();x++) {
if(image.getRGB(x,y)==0) {
if(x>x_max&&y!=0) {
x_max=x;
}
if(y>y_max&&x!=0) {
y_max=y;
}
break;
}
}
}
image=image.getSubimage(0, 0, x_max, y_max);
File outputfile = new File(imgPath+"图片"+a+".png");
ImageIO.write(image, "png", outputfile);
x_max=0;
y_max=0;
}
}
}
效果如下:
舒服了。