解决java压缩图片透明背景变黑色的问题


public static BufferedImage resize(int faceWidth,BufferedImage srcImg,HttpServletRequest request) throws IOException{

int imgWidth = 0;

if(faceWidth>70 && faceWidth<120){

imgWidth = faceWidth*7/8;

}else if(faceWidth>60 && faceWidth<70){

imgWidth = faceWidth*11/10;

}else if(faceWidth < 60){

imgWidth = faceWidth*6/5;

}else{

imgWidth = faceWidth*4/5;

}

int imgHeight = imgWidth*srcImg.getHeight()/srcImg.getWidth();

//构建新的图片

BufferedImage resizedImg = new BufferedImage(imgWidth,imgHeight,BufferedImage.TYPE_INT_RGB);

//将原图放大或缩小后画下来:并且保持png图片放大或缩小后背景色是透明的而不是黑色

Graphics2D resizedG = resizedImg.createGraphics();

resizedImg = resizedG.getDeviceConfiguration().createCompatibleImage(imgWidth,imgHeight,Transparency.TRANSLUCENT);

resizedG.dispose();

resizedG = resizedImg.createGraphics();

Image from = srcImg.getScaledInstance(imgWidth, imgHeight, srcImg.SCALE_AREA_AVERAGING);

resizedG.drawImage(from, 0, 0, null);

resizedG.dispose();

return resizedImg;

}

时间: 2024-10-10 06:56:02

解决java压缩图片透明背景变黑色的问题的相关文章

java压缩图片设置宽高

package html2pdf_2; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import javax.imageio.ImageIO; import com.sun.image

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

@RequestMapping(value = "/uploadImage", method = RequestMethod.POST) @ResponseBody public String uploadImage(HttpServletRequest request) throws IOException { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; I

android压缩图片,解决oom错误

你的ImageView只有128*96像素的大小,只是为了显示一张缩略图,这时候把一张1024*768像素的图片完全加载到内存中显然是不值得的. 所以我们需要一个方法来解决这个问题. [java] view plaincopy public static int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight) { // 源图片的高度和宽度 final int height = op

java压缩去除html空格和换行解决微信域名下不兼容

直接贴代码. java压缩去除html空格和换行解决微信域名下不兼容 调用:content = HtmlCompressor.compress(content); import java.io.StringReader;import java.io.StringWriter;import java.util.*;import java.util.regex.*; /******************************************* * 压缩jsp,html中的代码,去掉所有空

JAVA压缩 解压缩zip 并解决linux下中文乱码

1. [代码][Java]代码   1:再压缩前,要设置linux模式, 需要使用第三方ant-1.6.5.jar  如果是文件目录,则ZipEntry zipEntry=new ZipEntry(basePath + System.getProperties().getProperty("file.separator"));zipEntry.setUnixMode(755);//解决linux乱码 如果是文件,则 ZipEntry zipEntry=new ZipEntry(base

解决ie6不兼容透明图片

解决ie6不兼容透明图片有好多方法. 如果想同时解决兼容png8和png24的图片,建议同时引入pngfix.js和dd_belatedPng.js文件,如下: <!--[if IE 6]><script src="../js/pngfix.min.js"><script type="text/javascript" src="http:../js/DD_belatedPNG.js"></script&g

java实现图片压缩

java实现图片压缩 package Test; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import javax.imageio.ImageIO; import com.sun.image.

java上传图片并压缩图片大小

Thumbnailator 是一个优秀的图片处理的Google开源Java类库.处理效果远比Java API的好.从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生成处理后的图片,且允许微调图片的生成方式,同时保持了需要写入的最低限度的代码量.还支持对一个目录的所有图片进行批量处理操作.支持的处理操作:图片缩放,区域裁剪,水印,旋转,保持比例.另外值得一提的是,Thumbnailator至今仍不断更新,怎么样,感觉很有保障吧!Thumbnailator官网:h

Java - MultipartFile图片上传服务器,并且指定大小压缩

1 /*** 2 * 上传图片到服务器 并压缩 3 * 4 * @param myFile 文件 5 * @param request 6 * @return 7 */ 8 private Boolean UploadFile(MultipartFile myFile, int width, int height, HttpServletRequest request) { 9 Boolean sta = false; 10 InputStream is = null; 11 FileOutpu