java改变图片文件尺寸

package test.common;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import javax.imageio.ImageIO;

public class ImgTest {
    private Image img;
    private final static int WIDTH = 147;
    private final static int HEIGHT = 136;

    /**
     * 改变图片的大小到宽为size,然后高随着宽等比例变化
     * @param is 上传的图片的输入流
     * @param os 改变了图片的大小后,把图片的流输出到目标OutputStream
     * @param size 新图片的宽
     * @param format 新图片的格式
     * @throws IOException
     */
    public static OutputStream resizeImage(InputStream is, OutputStream os, int size, String format) throws IOException {
        BufferedImage prevImage = ImageIO.read(is);
        double width = prevImage.getWidth();
        double height = prevImage.getHeight();
        double percent = size/width;
        int newWidth = (int)(width * percent);
        int newHeight = (int)(height * percent);
        BufferedImage image = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_BGR);
        Graphics graphics = image.createGraphics();
        graphics.drawImage(prevImage, 0, 0, newWidth, newHeight, null);
        ImageIO.write(image, format, os);
        os.flush();
        is.close();
        os.close();
        ByteArrayOutputStream b = (ByteArrayOutputStream) os;
        return os;
    }

    public static void main(String[] args) {
        try {
            InputStream is = new FileInputStream(new File("download/qrcode_test.jpg"));
            OutputStream os = new FileOutputStream(new File("download/qrcode_test_1.jpg"));
            resizeImage(is, os, 10, "png");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}
时间: 2024-10-16 04:01:29

java改变图片文件尺寸的相关文章

Java改变图片的大小

前面在做项目的时候,有一个需求是需要上传图片的,然而该图片只是简单的展示一些信息,不需要很大,所以在上传图片的时候改变图片的大小就显得很有必要了!然后就写了下面这个方法来改变图片的大小! Java代码  /** * 改变图片的大小到宽为size,然后高随着宽等比例变化 * @param is 上传的图片的输入流 * @param os 改变了图片的大小后,把图片的流输出到目标OutputStream * @param size 新图片的宽 * @param format 新图片的格式 * @th

[读码时间] 图片列表:鼠标移入/移出改变图片透明度

说明:代码来自网络.注释为笔者学习时添加. <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>图片列表:鼠标移入/移出改变图片透明度</title> <style> ul,li{ /*去除内外边距,去除列表默认样式*/ margin:0; padding:0; list-style-type:none; } #imgList{ /

双击改变图片大小和多点触摸改变图片大小

系统的 UIScrollView 就有多点触摸改变图片的大小的功能,如果在向添加别的触摸事件,如这次讲到的双击图片大小就可以自定义一个 scrollView,当然,这个 scrollView 是继承自系统的 UIScrollView  的,这样,它仍然具有系统 scrollView 的特性,另外,可以添加自己想要的特性. 新的 scrollView 只需要添加一个方法,就可以实现双击图片变大的功能 #import "ZYScrollView.h" @implementation ZYS

Java实现图片裁剪预览功能

Java实现图片裁剪预览功能 在项目中,我们需要做些类似头像上传,图片裁剪的功能,ok看下面文章! 需要插件:jQuery Jcrop 后端代码: package org.csg.upload; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import 

Java 实现图片等比例缩略图 (Thumbnailator + Jsp+SpringMVC)

Web应用为上传图片生成缩略图是常见的基本功能,通过缩略图生成提高了信息浏览时的性能,在保证用户使用体验的同时减少了数据传输量.本次以实例的方式,讲解如何使用使用Java实现图片等比例缩略图生成功能. 效果查看 代码编写 Thumbnailator 是一个为Java界面更流畅的缩略图生成库.从API提供现有的图像文件和图像对象的缩略图中简化了缩略过程,两三行代码就能够从现有图片生成缩略图,且允许微调缩略图生成,同时保持了需要写入到最低限度的代码量. 1.导入相关的包 2.配置web.xml we

Java绘制图片生成图片文件进行预览

Java绘制图片并实现打印前生成图片文件进行预览, 适用于开发阶段. 如果要使用界面完成预览,请另找资源.这里用这个功能主要是用于结果预览,因为如果使用打印来进行结果验证,会浪费大量的纸张. Java代码: import java.awt.Color;import java.awt.Dimension;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Image;imp

函数传参,改变Div任意属性的值&amp;&amp;图片列表:鼠标移入/移出改变图片透明度

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

使用javascript改变图片路径

效果预览:http://keleyi.com/keleyi/phtml/jstexiao/16.htm 代码如下: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>使用js改变图片-柯乐义</title> 5 <script> 6 function changeImage() { 7 var element = document.getElementById('myimage'); 8 9 e

【转】使用blend改变图片颜色

最近对Core Animation和Core Graphics的内容东西比较感兴趣,自己之前也在这块相对薄弱,趁此机会也想补习一下这块的内容,所以之后几篇可能都会是对CA和CG学习的记录的文章. 在应用里一个很常见的需求是主题变换:同样的图标,同样的素材,但是需要按照用户喜爱变为不同的颜色.在iOS5和6的SDK里部分标准控件引入了tintColor,来满足个性化界面的需求,但是Apple在这方面还远远做的不够.一是现在用默认控件根本难以做出界面优秀的应用,二是tintColor所覆盖的并不够全