源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

解决java压缩图片透明背景变黑色的问题

  • 时间:2021-03-02 19:40 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:解决java压缩图片透明背景变黑色的问题
[u]复制代码[/u] 代码如下:
public class Picture {          // TODO Auto-generated constructor stub       public static void resizePNG(String fromFile, String toFile, int outputWidth, int outputHeight,boolean proportion) {               try {                 File f2 = new File(fromFile);                    BufferedImage bi2 = ImageIO.read(f2);                 int newWidth;               int newHeight;            // 判断是否是等比缩放            if (proportion == true) {             // 为等比缩放计算输出的图片宽度及高度             double rate1 = ((double) bi2.getWidth(null)) / (double) outputWidth + 0.1;             double rate2 = ((double) bi2.getHeight(null)) / (double) outputHeight + 0.1;             // 根据缩放比率大的进行缩放控制             double rate = rate1 < rate2 ? rate1 : rate2;             newWidth = (int) (((double) bi2.getWidth(null)) / rate);             newHeight = (int) (((double) bi2.getHeight(null)) / rate);            } else {             newWidth = outputWidth; // 输出的图片宽度             newHeight = outputHeight; // 输出的图片高度            }                   BufferedImage to = new BufferedImage(newWidth, newHeight,                            BufferedImage.TYPE_INT_RGB);                    Graphics2D g2d = to.createGraphics();                    to = g2d.getDeviceConfiguration().createCompatibleImage(newWidth,newHeight,                            Transparency.TRANSLUCENT);                    g2d.dispose();                    g2d = to.createGraphics();                    Image from = bi2.getScaledInstance(newWidth, newHeight, bi2.SCALE_AREA_AVERAGING);                    g2d.drawImage(from, 0, 0, null);                   g2d.dispose();                    ImageIO.write(to, "png", new File(toFile));                } catch (IOException e) {                    e.printStackTrace();                }            }            public static void main(String[] args) throws IOException {                System.out.println("Start");                resizePNG("C:\\Documents and Settings\\Administrator\\桌面\\8d9e9c82d158ccbf8b31059319d8bc3eb035414e.jpg", "C:\\Documents and Settings\\Administrator\\桌面\\ell.png",200, 100,true);                System.out.println("OK");            }  }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部