package com;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.InputStream;
import javax.imageio.ImageIO;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import com.mortennobel.imagescaling.DimensionConstrain;
import com.mortennobel.imagescaling.ResampleOp;
/**
* 处理上传图片
*
* @author Administrator
*
*/
public class ImageFunctionUtils {
/**
* 图片缩放方法
* @param file 文件夹位置
* @param imgStr base64 图片的base64编码
* @param fileSaveName //图片名称
* @param width 图片宽度
* @return
*/
public static boolean cutImage(File file, String imgStr,String fileSaveName, int width) {
try {
if (imgStr == null){ //图像数据为空 {
return false;
}
if(!file.exists()){//判断文件夹是否存在
file.mkdirs();
}
byte[] bytes = new BASE64Decoder().decodeBuffer(imgStr);
InputStream s = new ByteArrayInputStream(bytes);
BufferedImage srcBi = ImageIO.read(s);
int srcW = srcBi.getWidth();
int srcH = srcBi.getHeight();
if (width < srcW) {
int height = (width * srcH) / srcW;
ResampleOp resampleOp = new ResampleOp(DimensionConstrain
.createMaxDimension(width, height, true));
BufferedImage rescaled = resampleOp.filter(srcBi, null);
//调整高度
int h=(3*width)/5;
if(height>h){
BufferedImage bi=new BufferedImage(width,h,rescaled.getType());
Graphics g=bi.getGraphics();
g.drawImage(rescaled, 0, 0, null);
g.dispose();
ImageIO.write(bi, "png", new File(file,fileSaveName));
}else{
ImageIO.write(rescaled, "png", new File(file,fileSaveName));
}
return Boolean.TRUE;
}
} catch (Exception e) {
e.printStackTrace();
}
return Boolean.FALSE;
}
/**
* 图片缩放,大、小图均要
*
* @param src
* @param dest
* @param width
*/
public static boolean cutImage(String src, String dest, int width) {
try {
BufferedImage srcBi = ImageIO.read(new File(src));
int srcW = srcBi.getWidth();
int srcH = srcBi.getHeight();
if (width < srcW) {
int height = (width * srcH) / srcW;
ResampleOp resampleOp = new ResampleOp(DimensionConstrain
.createMaxDimension(width, height, true));
BufferedImage rescaled = resampleOp.filter(srcBi, null);
//调整高度
int h=(3*width)/5;
if(height>h){
BufferedImage bi=new BufferedImage(width,h,rescaled.getType());
Graphics g=bi.getGraphics();
g.drawImage(rescaled, 0, 0, null);
g.dispose();
ImageIO.write(bi, "png", new File(dest));
}else{
ImageIO.write(rescaled, "png", new File(dest));
}
return Boolean.TRUE;
}
} catch (Exception e) {}
return Boolean.FALSE;
}
/**
* 50*30
*
* @param src
* @param dest
* @return
*/
public static boolean saveIconImage(String src, String dest) {
try {
BufferedImage srcBi = ImageIO.read(new File(src));
int srcW = srcBi.getWidth();
int srcH = srcBi.getHeight();
int width=52;
int height = (width * srcH) / srcW;
ResampleOp resampleOp = new ResampleOp(DimensionConstrain
.createMaxDimension(width, height, true));
BufferedImage rescaled = resampleOp.filter(srcBi, null);
if(height>30){
BufferedImage bi=new BufferedImage(50,30,rescaled.getType());
Graphics g=bi.getGraphics();
g.drawImage(rescaled, -1, -1, null);
g.dispose();
ImageIO.write(bi, "png", new File(dest));
}else{
ImageIO.write(rescaled, "png", new File(dest));
}
return Boolean.TRUE;
} catch (Exception e) {}
return Boolean.FALSE;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.InputStream;
import javax.imageio.ImageIO;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import com.mortennobel.imagescaling.DimensionConstrain;
import com.mortennobel.imagescaling.ResampleOp;
/**
* 处理上传图片
*
* @author Administrator
*
*/
public class ImageFunctionUtils {
/**
* 图片缩放方法
* @param file 文件夹位置
* @param imgStr base64 图片的base64编码
* @param fileSaveName //图片名称
* @param width 图片宽度
* @return
*/
public static boolean cutImage(File file, String imgStr,String fileSaveName, int width) {
try {
if (imgStr == null){ //图像数据为空 {
return false;
}
if(!file.exists()){//判断文件夹是否存在
file.mkdirs();
}
byte[] bytes = new BASE64Decoder().decodeBuffer(imgStr);
InputStream s = new ByteArrayInputStream(bytes);
BufferedImage srcBi = ImageIO.read(s);
int srcW = srcBi.getWidth();
int srcH = srcBi.getHeight();
if (width < srcW) {
int height = (width * srcH) / srcW;
ResampleOp resampleOp = new ResampleOp(DimensionConstrain
.createMaxDimension(width, height, true));
BufferedImage rescaled = resampleOp.filter(srcBi, null);
//调整高度
int h=(3*width)/5;
if(height>h){
BufferedImage bi=new BufferedImage(width,h,rescaled.getType());
Graphics g=bi.getGraphics();
g.drawImage(rescaled, 0, 0, null);
g.dispose();
ImageIO.write(bi, "png", new File(file,fileSaveName));
}else{
ImageIO.write(rescaled, "png", new File(file,fileSaveName));
}
return Boolean.TRUE;
}
} catch (Exception e) {
e.printStackTrace();
}
return Boolean.FALSE;
}
/**
* 图片缩放,大、小图均要
*
* @param src
* @param dest
* @param width
*/
public static boolean cutImage(String src, String dest, int width) {
try {
BufferedImage srcBi = ImageIO.read(new File(src));
int srcW = srcBi.getWidth();
int srcH = srcBi.getHeight();
if (width < srcW) {
int height = (width * srcH) / srcW;
ResampleOp resampleOp = new ResampleOp(DimensionConstrain
.createMaxDimension(width, height, true));
BufferedImage rescaled = resampleOp.filter(srcBi, null);
//调整高度
int h=(3*width)/5;
if(height>h){
BufferedImage bi=new BufferedImage(width,h,rescaled.getType());
Graphics g=bi.getGraphics();
g.drawImage(rescaled, 0, 0, null);
g.dispose();
ImageIO.write(bi, "png", new File(dest));
}else{
ImageIO.write(rescaled, "png", new File(dest));
}
return Boolean.TRUE;
}
} catch (Exception e) {}
return Boolean.FALSE;
}
/**
* 50*30
*
* @param src
* @param dest
* @return
*/
public static boolean saveIconImage(String src, String dest) {
try {
BufferedImage srcBi = ImageIO.read(new File(src));
int srcW = srcBi.getWidth();
int srcH = srcBi.getHeight();
int width=52;
int height = (width * srcH) / srcW;
ResampleOp resampleOp = new ResampleOp(DimensionConstrain
.createMaxDimension(width, height, true));
BufferedImage rescaled = resampleOp.filter(srcBi, null);
if(height>30){
BufferedImage bi=new BufferedImage(50,30,rescaled.getType());
Graphics g=bi.getGraphics();
g.drawImage(rescaled, -1, -1, null);
g.dispose();
ImageIO.write(bi, "png", new File(dest));
}else{
ImageIO.write(rescaled, "png", new File(dest));
}
return Boolean.TRUE;
} catch (Exception e) {}
return Boolean.FALSE;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}