发布网友 发布时间:2022-05-16 16:33
共2个回答
热心网友 时间:2023-10-31 19:59
怎么会无法呢。java支持图片格式中最好的就是png,别的图片可以不支持,png是默认支持的。用ARGB色彩模型直接对png操作即可,
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class Test {
static public void main(String 参数[]){
try{
BufferedImage img=ImageIO.read(new File("test.png"));
int half_w=img.getWidth()/2;
int rgb[]=new int[half_w*img.getHeight()];
img.getRGB(0, 0, half_w, img.getHeight(), rgb, 0, half_w);
BufferedImage img_half=new BufferedImage(half_w, img.getHeight(), BufferedImage.TYPE_INT_ARGB);
img_half.setRGB(0, 0,half_w,img.getHeight(), rgb,0,half_w);
//保存到新文件half.png里面
ImageIO.write(img_half,"PNG",new File("half.png"));
}catch (IOException e){
e.printStackTrace();
}
}
}
======
得到half.png签名图的左半边,保留了透明的背景。
这已经只有5-6行,抛砖引玉,用raster可能代码更简..
热心网友 时间:2023-10-31 20:00
可以实现。