[英]How to remove unnecessary black background after resizing the image to a fixed resolution?
I have been resizing every image to a fix resolution before adding it to my database.在将每个图像添加到我的数据库之前,我一直在将每个图像调整为固定分辨率。 for this purpose i have been using FileUpload and following code:-
为此,我一直在使用 FileUpload 和以下代码:-
logo_name = System.currentTimeMillis() + ".png";
File uploadedFile = new File("/www/static.appcanvas.com/"+logo_name);
BufferedImage bi = ImageIO.read(item.getInputStream());
Image img = bi.getScaledInstance(125,125,Image.SCALE_SMOOTH);
BufferedImage img_logo = new BufferedImage(125,125,BufferedImage.TYPE_INT_RGB);
Graphics2D g = img_logo.createGraphics();
g.drawImage(img,0,0,null);
if(g != null) g.dispose();
ImageIO.write(img_logo,"png",uploadedFile)
I get the image of the desired resolution but there is a unnecessary black background which i am unable to remove.我得到了所需分辨率的图像,但有一个我无法删除的不必要的黑色背景。 image before: http://www.rocketcampus.com/images/test.png image after: http://static.appcanvas.com/1334085929080.png
前图: http://www.rocketcampus.com/images/test.png后图: http://static.appcanvas.com/1334085929080.png
You can change the type of your BufferedImage
to BufferedImage.TYPE_INT_ARGB
to have a transparent background.您可以将
BufferedImage.TYPE_INT_ARGB
BufferedImage
获得透明背景。
This worked for me:这对我有用:
public static void main(String[] args) throws IOException {
FileInputStream item = new FileInputStream("D:/tmp/OpenFlexo_07.gif");
String logo_name = System.currentTimeMillis() + ".png";
File uploadedFile = new File("d:/www/static.appcanvas.com/" + logo_name);
BufferedImage bi = ImageIO.read(item);
Image img = bi.getScaledInstance(125, 125, Image.SCALE_SMOOTH);
BufferedImage img_logo = new BufferedImage(125, 125, BufferedImage.TYPE_INT_RGB);
Graphics2D g = img_logo.createGraphics();
g.drawImage(img, 0, 0, null);
if (g != null) {
g.dispose();
}
uploadedFile.getParentFile().mkdirs();
uploadedFile.createNewFile();
ImageIO.write(img_logo, "png", uploadedFile);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.