上传一张高清图,生成两张不同大小的缩略图,缩略图变的很模糊。png的图片变成黑色背景了。代码如下

public void changImg(String path){

try{

File j_file=new java.io.File(getHTTP.getServletContext().getRealPath("")+"/upfiles/newsImg/goods");

if(!j_file.exists()){

j_file.mkdirs();

}

//----上传完成,开始生成缩略图---goods

java.io.File goods_file = new java.io.File(getHTTP.getServletContext().getRealPath("")+"/"+path);//读入刚才上传的文件

String newpath=path.substring(0, path.lastIndexOf("/"));

String fileName=path.substring(path.lastIndexOf("/")+1, path.length());

String newgoods_url=getHTTP.getServletContext().getRealPath("")+"/"+newpath+"/goods/"+fileName;//新的缩略图保存地址

Image src=javax.imageio.ImageIO.read(goods_file);

float tagsize=400;

int old_w=src.getWidth(null);//得到源图宽

int old_h=src.getHeight(null);

int new_w=0;

int new_h=0;//得到源图长

int tempsize;

float tempdouble;

if(old_w>old_h){

tempdouble=old_w/tagsize;

}else{

tempdouble=old_h/tagsize;

}

new_w=Math.round(old_w/tempdouble);

new_h=Math.round(old_h/tempdouble);//计算新图长宽

BufferedImage tag = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);

tag.getGraphics().drawImage(src,0,0,new_w,new_h,null);//绘制缩小后的图

FileOutputStream newimage=new FileOutputStream(newgoods_url); //输出到文件流

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);

encoder.encode(tag); //近JPEG编码

newimage.close();

//----上传完成,开始生成缩略图---thumb

java.io.File thumb_file = new java.io.File(getHTTP.getServletContext().getRealPath("")+"/"+path);//读入刚才上传的文件

String newthumb_url=getHTTP.getServletContext().getRealPath("")+"/"+newpath+"/thumb/"+fileName;//新的缩略图保存地址

j_file=new java.io.File(getHTTP.getServletContext().getRealPath("")+"/upfiles/newsImg/thumb");

if(!j_file.exists()){

j_file.mkdirs();

}

Image thumb_src = javax.imageio.ImageIO.read(thumb_file);//构造Image对象

float thumb_tagsize=80;

int thumb_old_w=thumb_src.getWidth(null);//得到源图宽

int thumb_old_h=thumb_src.getHeight(null);

int thumb_new_w=0;

int thumb_new_h=0;//得到源图长

int thumb_tempsize;

float thumb_tempdouble;

if(thumb_old_w>thumb_old_h){

thumb_tempdouble=thumb_old_w/thumb_tagsize;

}else{

thumb_tempdouble=thumb_old_h/thumb_tagsize;

}

thumb_new_w=Math.round((thumb_old_w/thumb_tempdouble));

thumb_new_h=Math.round(thumb_old_h/thumb_tempdouble);//计算新图长宽

BufferedImage thumb_tag = new BufferedImage(thumb_new_w,thumb_new_h,BufferedImage.TYPE_INT_RGB);

thumb_tag.getGraphics().drawImage(thumb_src,0,0,thumb_new_w,thumb_new_h,null);//绘制缩小后的图

FileOutputStream thumb_newimage=new FileOutputStream(newthumb_url); //输出到文件流

JPEGImageEncoder thumb_encoder = JPEGCodec.createJPEGEncoder(thumb_newimage);

thumb_encoder.encode(thumb_tag); //近JPEG编码

thumb_newimage.close();

}catch(Exception e){

e.printStackTrace();

}

}

java将模糊的图片变清晰_java高清图生成缩略图变得模糊相关推荐

  1. 怎么把模糊的图片修复清晰?分享两种有效的修复方法

    怎么把模糊的图片修复清晰呢?拍摄照片是一件很有趣的事情,但有时候拍出来的照片却不够清晰,又或者是随着时间的流逝,我们的照片可能会变得不清晰,甚至不能看清照片中的人和物.然而,随着技术的不断发展,我们现 ...

  2. 这6个超实用的图片素材网站,高清、免费,赶紧马住

    推荐6个超实用的图片素材网站,高清无水印,绝对值得收藏! 1.菜鸟图库 https://www.sucai999.com/pic.html#?v=NTYxMjky 网站主要是为新手设计师提供免费素材的 ...

  3. 抖音怎么上传无损画质_抖音上传视频为什么会模糊?如何才能上传高清无损视频?...

    抖音上传视频为什么会模糊?如何才能上传高清无损视频? 文章首发"公众号"[四爷课堂],专注分享短视频运营干货,关注可领取100G抖音运营资料,仅限50个名额. 四哥初入抖音的时候, ...

  4. 分享一套高级Java笔试题(实拍高清图)

    转载自 分享一套高级Java笔试题(实拍高清图) 下面是部分分享原图

  5. 高清电脑壁纸桌面图片|到高图随心换高清图

    每天和电脑手机打交道的现代人,壁纸作为手机\电脑的第一印象,想一张好看的壁纸可以让你的心情变得十分愉悦,亦或是此刻的壁纸图片代表了此刻的心情!好看的壁纸随处都有,但未必时自己想要的哪一款,这个时候到高 ...

  6. IEEE论文模板图片要求,PPT+Visio保存dpi300高清图TIF

    主要问题:PPT画的图如何保存成高清图,Visio怎么保存dpi300的TIF图片 对于IEEE论文模板要求的300 dpi TIFF or EPS file,如果最初是用PPT画的图怎么转换成符合要 ...

  7. 三种方法教你让模糊照片秒变高清图

    现在随着数字相机和智能手机的普及,我们拍摄的照片数量越来越多,但是有些照片可能因为环境或技术等原因导致模糊不清,这时候我们就需要使用一些软件或工具来让照片变得清晰,以满足我们的需求. 下面介绍三种常用 ...

  8. Java苹果手机缩略图旋转_Java实例使用Thumbnailator生成缩略图(缩放、旋转、裁剪、水印)...

    1 需求 表哥需要给儿子报名考试,系统要求上传不超过30KB的图片,而现在的手机随手一拍就是几MB的,怎么弄一个才30KB的图片呢? 一个简单的办法是在电脑上把图片缩小,然后截屏小图片,但现在的电脑屏 ...

  9. 教你如何把模糊老旧照片修复成高清照片,一款照片高清修复工具

    HitPaw Photo Enhancer 可以帮助您使照片更清晰并根据需要放大,能够帮助用户修复图片的质量,让模糊的图像变得高清美观,支持修复各种类型的图片,将图片放大的同时还能提升画质,让图片更加 ...

  10. 收藏这几个免版权高清图片搜索网站,找高清图片素材更方便

    对于一些做设计或者自媒体的同学,有时候需要查找一些高清图片素材,网上直接搜索下载使用会存在一些版权的问题.而到免版权高清图片素材网站查找图片就可以自由地使用,不同担心版权问题.免版权高清图片网站比较多 ...

最新文章

  1. C# 3.0/3.5语法新特性示例汇总[转]
  2. Kotlin实战指南五:继承、接口
  3. android打包过程
  4. ffbe攻略站_最终幻想勇气启示录ffbe兵员强化攻略
  5. A4.2021年全国数学建模竞赛A题-赛题分析与评阅要点(FAST主动反射面的形状调节)
  6. linux下svn常用指令(转)
  7. Vector3 *2 ,ToString()自动四舍五入
  8. mysql java 问题_【Java】连接MySQL问题总结
  9. 数据治理是开展数据分析的前提
  10. APP软件半成品测试技巧
  11. 翻译 Real-Time Global Localization of Robotic Cars in Lane Level via Lane Marking Detection and Shape
  12. L1-6 字母串 (15 分)
  13. xtrabackup导致MYSQL HANG起
  14. 一起看懂Redis两种持久化方式的原理
  15. android 菜鸟面单打印_android studio 菜鸟实战项目 之 spnner实现
  16. 2010南非世界杯32强手绘海报
  17. 两个ViewControllerScene互相show,全局变量失效?简直就是zuo!
  18. 小高考三门计算机能报大专吗,江苏小高考没过能上大学吗
  19. Unity Timeline自定义轨道 DefaultPlayables源码剖析
  20. 计算机在医学影像学的应用,计算机图像数字化与医学影像学之应用探析

热门文章

  1. python源文件是什么意思_.py文件是什么?
  2. word如何插入目录
  3. CRMEB制作docker-compose
  4. 电流、电压、功率的计算方式
  5. android的大转盘抽奖完美实现
  6. 无人机基础知识:多旋翼无人机自动控制原理与算法
  7. java实现等额本息算法
  8. MXF视频文件损坏的修复方法
  9. IPv6/IPv4 + aliddns 实现黑群晖外网控制和访问
  10. linux tab键失灵了,Linux grep \t Tab 键失效