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;
    }

  • 相关阅读:
    汉语6级试卷(转)
    看《第一滴血4》
    又爱又恨奥沙利文
    最爱“剁椒鱼头”
    中国移动用户请注意长途电话包有陷阱
    推荐一个免费原版KTV / MTV下载网站
    传说中的人品问题
    信息更改致乒乓球爱好者
    贴几张我家乐乐的照片
    Web Parts: From SharePoint to ASP.NET 2.0
  • 原文地址:https://www.cnblogs.com/it38/p/5201052.html
Copyright © 2011-2022 走看看