zoukankan      html  css  js  c++  java
  • image压缩

    public byte[] compressPic(byte[] data) {
    if(data.length == 0){
    return new byte[0];
    }
    Image img = null;
    try {
    img = ImageIO.read(new ByteArrayInputStream(data));
    //将图片流转成图片,以便获取宽和高
    BufferedImage imgs = toBufferedImage(img);
    int w = imgs.getWidth();
    int h = imgs.getHeight();
    if(w > 480 && h<=800){
    BufferedImage tag = new BufferedImage((int) 480, (int) h, BufferedImage.TYPE_INT_RGB);
    tag.getGraphics().drawImage(img.getScaledInstance(480, h, Image.SCALE_SMOOTH), 0, 0, null);
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    ImageIO.write( tag,"jpg",out);
    out.close();
    return out.toByteArray();
    }else if(w > 480 && h>800){
    BufferedImage tag = new BufferedImage((int) 480, (int) 800, BufferedImage.TYPE_INT_RGB);
    tag.getGraphics().drawImage(img.getScaledInstance(480, 800, Image.SCALE_SMOOTH), 0, 0, null);
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    ImageIO.write( tag,"jpg",out);
    out.close();
    return out.toByteArray();
    }else if(w <= 480 && h>800){
    BufferedImage tag = new BufferedImage((int) w, (int) 800, BufferedImage.TYPE_INT_RGB);
    tag.getGraphics().drawImage(img.getScaledInstance(w, 800, Image.SCALE_SMOOTH), 0, 0, null);
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    ImageIO.write( tag,"jpg",out);
    out.close();
    return out.toByteArray();
    }else{
    return data;
    }

    } catch (IOException e) {
    e.printStackTrace();
    }
    return data;
    }

    public BufferedImage toBufferedImage(Image image) {
    if (image instanceof BufferedImage) {
    return (BufferedImage)image;
    }
    image = new ImageIcon(image).getImage();
    BufferedImage bimage = null;
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    try {
    int transparency = Transparency.OPAQUE;
    GraphicsDevice gs = ge.getDefaultScreenDevice();
    GraphicsConfiguration gc = gs.getDefaultConfiguration();
    bimage = gc.createCompatibleImage(
    image.getWidth(null), image.getHeight(null), transparency);
    } catch (HeadlessException e) {
    }

    if (bimage == null) {
    int type = BufferedImage.TYPE_INT_RGB;
    bimage = new BufferedImage(image.getWidth(null), image.getHeight(null), type);
    }
    Graphics g = bimage.createGraphics();
    g.drawImage(image, 0, 0, null);
    g.dispose();
    return bimage;
    }

  • 相关阅读:
    排列数组所有情况
    查到的结果的某个字段在一串字符串之中
    element组件化跳转和路由式跳转
    vue路由and组件操作
    事件 绑定,取消冒泡,拖拽 ,点击,事件委托习题
    窗口属性 和DOM 元素尺寸位置 及习题加强
    DOM树的增删改查 和 Date定时任务
    JS DOM 初做了解,习题笔记
    struts配置及检验
    第一个JSP登录跳转
  • 原文地址:https://www.cnblogs.com/it38/p/5201052.html
Copyright © 2011-2022 走看看