JAVA压缩图片 服务器端压缩图片 原创

 @RequestMapping(value = "/uploadImage", method = RequestMethod.POST)
    @ResponseBody
    public String uploadImage(HttpServletRequest request) throws IOException {
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        Iterator<String> iterator = multipartRequest.getFileNames();
        String fileName = "";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        String dir = "upload/" + sdf.format(new Date()) + "/";
        String realPath = request.getSession().getServletContext().getRealPath("/");
        String suffix = "";
        while (iterator.hasNext()) {
            MultipartFile multipartFile = multipartRequest.getFile(iterator.next());
            if (multipartFile != null) {
                String fn = multipartFile.getOriginalFilename();
                suffix = fn.substring(fn.lastIndexOf("."));
                fileName = Utils.getRandomStringByLength(6) + suffix;
                String path = realPath + dir + fileName;
                path = path.replace("\\", "/");
                File f = new File(path);
                if (!f.mkdirs()) {
                    f.mkdir();
                }
                multipartFile.transferTo(f);
            }
        }
        PictureUtil.Tosmallerpic(realPath + dir, new File((realPath + dir + fileName).replace("\\", "/")), suffix, fileName, (float) 0.1);

        return dir +fileName;
    }
package com.property.client.util;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.logging.Level;

/**
 */
public class PictureUtil {
    private final static Logger logger = LoggerFactory.getLogger(PictureUtil.class);

    /**
     * @param originalFilePath          原图片所在的文件夹路径
     * @param originalFileObject        原图片路径
     * @param originalFileExtensionName 原图片扩展名
     * @param originalFileName          原图片名
     * @param percent             压缩百分比
     */
    public static void Tosmallerpic(String originalFilePath, File originalFileObject, String originalFileExtensionName, String originalFileName, float percent) {
        Image src;
        try {
            src = javax.imageio.ImageIO.read(originalFileObject); //构造Image对象
            String img_midname = originalFilePath + originalFileName.substring(0, originalFileName.indexOf(".")) + originalFileExtensionName + "_small";
            BufferedImage tag = new BufferedImage(src.getWidth(null), src.getHeight(null), BufferedImage.TYPE_INT_RGB);
            //tag.getGraphics().drawImage(src,0,0,new_w,new_h,null); //绘制缩小后的图
            tag.getGraphics().drawImage(src.getScaledInstance(src.getWidth(null), src.getHeight(null), Image.SCALE_SMOOTH), 0, 0, null);
            FileOutputStream newImage = new FileOutputStream(img_midname); //输出到文件流
            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newImage);
            JPEGEncodeParam jep = JPEGCodec.getDefaultJPEGEncodeParam(tag);
            /* 压缩质量 */
            jep.setQuality(percent, true);
            encoder.encode(tag, jep);
            //encoder.encode(tag); //近JPEG编码
            newImage.close();
        } catch (IOException ex) {
            logger.error("图片压缩失败", ex);
        }
    }
}
时间: 2024-10-11 13:31:13

JAVA压缩图片 服务器端压缩图片 原创的相关文章

Atitit. 图像处理jpg图片的压缩 清理垃圾图片 java版本

Atitit. 图像处理jpg图片的压缩  清理垃圾图片 java版本 1. 清理图片压缩图片尺寸 1 2. 所以要使用ImageWriter 1 3. Thumbnails质量压缩builder.outputQuality(0.9); 2 4. attilax框架的处理 code 2 5. 到一篇文章提到如何控制jpg图片后压缩的质量 3 6. 参考 4 1. 清理图片压缩图片尺寸 目标::300kb>>>10kb.. 处理流程:::scale,outputQuality(0.5) 裁

java实现的图片缩放 压缩 裁剪工具!找了很久,市面上再也找不到比它缩放效果还好的代码了

原文:java实现的图片缩放 压缩 裁剪工具!找了很久,市面上再也找不到比它缩放效果还好的代码了 源代码下载地址:http://www.zuidaima.com/share/1550463380458496.htm 纯 java 实现的 图片缩放 压缩 裁剪工具!不依赖任何第三方 jar 包 1. 找了很久,市面上再也找不到比它缩放效果还好的代码了 (再不使用任何第三方组件的前提下) 2. 支持缩放 3. 支持剪切 (例如:用户上传头像后剪切成正方形小图) /* * Copyright 2012

spring mvc 图片上传,图片压缩、跨域解决、 按天生成目录 ,删除,限制为图片代码等相关配置

spring mvc 图片上传,跨域解决 按天生成目录 ,删除,限制为图片代码,等相关配置 fs.root=data/ #fs.root=/home/dev/fs/ #fs.root=D:/fs/ #fs.domains=182=http://172.16.100.182:18080,localhost=http://localhost:8080 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE be

Android图片压缩(质量压缩和尺寸压缩)

在网上调查了图片压缩的方法并实装后,大致上可以认为有两类压缩:质量压缩(不改变图片的尺寸)和尺寸压缩(相当于是像素上的压缩):质量压缩一般可用于上传大图前的处理,这样就可以节省一定的流量,毕竟现在的手机拍照都能达到3M左右了,尺寸压缩一般可用于生成缩略图.两种方法都实装在了我的项目中,结果却发现在质量压缩的模块中,本来1.9M的图片压缩后反而变成3M多了,很是奇怪,再做了进一步调查终于知道原因了.下面这个博客说的比较清晰: android图片压缩总结 总结来看,图片有三种存在形式:硬盘上时是fi

Android加载大图片(压缩)

转载自http://blog.csdn.net/junjx/article/details/7798604 在Android开发中,我们经常需要加载图片.但是图片的尺寸往往会很大,如果我们要的是比较小的图片,在Android有限的内存下,我们显然不能把大尺寸的图片放到内存里,这样不但效率降低,而且会导致java.lang.OutOfMemory异常,相信很多朋友都遇到过这样的问题,那么该怎么解决这一问题呢?其实在Android官方文档中早已给出了解决的方案. 一.读Bitmap的尺寸和类型   

phpPHP创建创建jpg格式图片以及压缩图片(转)

其实是因为一些业务上的需求,所以需要对用户上传后的图片进行压缩,因为上传的图片比较大,显示的时候加载起来如果网速不给力的话就很吃力了,而且大图片也浪费空间,于是找了一下相关的资源,主要方法在开源中国上找到了: http://www.oschina.net/question/814955_115750 然后,图片压缩后显示出来了,但是要保存,所以还需要进行处理,然后看到了另外一篇文章: http://www.nowamagic.net/php/php_CreateJpg.php 这里就将这篇文章转

图片的压缩

我们从网上获取图片有时太大我们的手机分辨率不够所以我们就得把图片压缩 下面就是从网上获取图片直接压缩的代码 package com.example.tupian; import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; imp

android选取本地图片及关于图片压缩上传问题

<span style="font-size:18px;">在一个项目里面,有一个需求是让用户自己选择图片,然后上传到服务器.看似一个很简单的需求,就是选择图片,把图片装好,然后通过网络请求上传到后台,OK.但是事实并非如此,因为我们可以android项目,他是open的,他有更多的可能性,当然你也会遇到更多古灵精怪的问题.</span> 获取图片有3种方法,一是自己用surface控件,利用镜头来获取图片:二是调用系统相机,并且返回拍到的图片:三是直接在利用图

Photoshop脚本 &gt; 压缩并输出JPEG图片

源自:http://coolketang.com/tutorials/menu2lesson9.php 本节将演示如何使用脚本,将当前文档转换为JPEG格式.首先创建一个空白的脚本文档,并保存在硬盘上某个位置. 首先创建一个空白的脚本文档,并保存在硬盘上某个位置. 接着输入脚本代码: //定义一个变量[document],用来表示Photoshop当前的活动文档. var document = app.activeDocument; //定义一个变量[fileOut],用来表示导出后的GIF图片