java 缩放图片 锯齿_Java Image Filters 图像缩放质量差的问题解决
Java Image Filters 提供一个用来处理图像缩放的 Filter 类:ScaleFilter,用法如下:
BufferedImage bi_src = ...;
ImageIO.write(new ScaleFilter(100,100), "jpeg", dest);
但在使用中发现图像缩小后质量比较差,有很多的锯齿,如下图所示:
打开 ScaleFilter 代码后:
public class ScaleFilter extends AbstractBufferedImageOp {
private int width;
private int height;
/**
* Construct a ScaleFilter.
*/
public ScaleFilter() {
this(32, 32);
}
/**
* Construct a ScaleFilter.
* @param width the width to scale to
* @param height the height to scale to
*/
public ScaleFilter( int width, int height ) {
this.width = width;
this.height = height;
}
public BufferedImage filter( BufferedImage src, BufferedImage dst ) {
if ( dst == null ) {
ColorModel dstCM = src.getColorModel();
dst = new BufferedImage(dstCM, dstCM.createCompatibleWritableRaster( width, height ),
dstCM.isAlphaPremultiplied(), null);
}
Image scaleImage = src.getScaledInstance( width, height, Image.SCALE_AREA_AVERAGING );
Graphics2D g = dst.createGraphics();
g.drawImage( scaleImage, 0, 0, width, height, null );
g.dispose();
return dst;
}
public String toString() {
return "Distort/Scale";
}
}
这里可以看出,它使用的是一种折中的图像质量处理方法 (Image.SCALE_AREA_AVERAGING) ,只要将这个值改为 Image.SCALE_SMOOTH,就可以质量较高的图像,而且图像文件并没有变大,如下图:
你可以重写一个 MyScaleFilter 的类进行处理,省却修改原有代码。
java 缩放图片 锯齿_Java Image Filters 图像缩放质量差的问题解决相关推荐
- Java,图片在table中显示并缩放2.0
第二天更新-- 先说一下昨天socket传输不同类型的接收,我的解决办法--抛出异常 https://blog.csdn.net/everything002/article/details/10754 ...
- java jlabel图片大小_java – 调整图片大小以适应JLabel
大纲 以下是要遵循的步骤. >将图片作为BufferedImage读取. >将BufferedImage的大小调整为另一个大小为JLabel的BufferedImage. >从调整大 ...
- java 简单图片浏览器_Java实现简单的图片浏览器
第一次写博客,不喜勿喷. 最近一个小师弟问我怎么用Java做图片浏览器,感觉好久没玩Java了,就自己动手做了一下. 学校的教程是用Swing来做界面的,所以这里也用这个来讲. 首先要做个大概的界面出 ...
- java显示图片缩略图_java中生成图片的缩略图
importjava.awt.Image;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.FileOutputS ...
- java 数字图片识别_java – 识别图像中的数字
您很可能需要执行以下操作: >在整个页面上应用Hough Transform算法,这应该会产生一系列页面部分. >对于您获得的每个部分,请再次应用.如果当前部分产生2个元素,那么你应该处理 ...
- java 背景图片自适应_java 背景图片随窗口大小变化进行自动缩放及平铺 | 学步园...
最近一直被这个问题困扰这,上网也搜了不少这方面的知识,发现很多人都说用reapint方法(很简单的)进行图片重绘就OK了(没源码),于是乎至今也没实现 但通过自己的摸索也确实学到了不少东东滴! 在看代 ...
- java 消除png 锯齿_java Graphics2d消除锯齿,使字体平滑显示
标签: Java 2D API 提供的文本处理功能进行美化.Java 2D API 的文本功能包括: 使用抗锯齿处理和微调(hinting)以达到更好的输出质量 可以使用系统安装的所有字体 可以将对图 ...
- java判断图片相同_java 识别图片相似度及图片是否相同
1.比较MD5值 判断图片是否相同 package com.zerdoor.util; import java.io.File; import java.io.FileInputStream; imp ...
- JAVA绘制图片原理_java开发_图片截取工具实现原理
先来看看效果: 测试一: 原图: 效果图: 测试二: 原图: 效果图: 代码部分: /** * */ package com.b510; import java.awt.rectangle; impo ...
最新文章
- C中 #define
- FATCAT桌面计算器即将出炉!
- 谈谈我熟悉又陌生的cookie
- 分享Qt的面试题目(或许未来的我能用的上呢)_vortex_新浪博客
- 关于git的cherry-pick命令
- server使用abp中调用存储过程 sql_ABP中连接已有数据库执行Sql或存储过程
- 判断用户什么时候离开,以什么方式离开
- 六石管理学:你觉得别人错了,应该怎么办
- 【电子科技大学-微电子技术导论】学习笔记
- 6.27java斗地主
- 怎么把ipad中超大文件传输到电脑
- C#绘制中国象棋棋盘
- flutter 应用 adb shell input swipe 命令失效
- 计算机显卡的安装步骤简约,自己组装电脑:显卡安装教程
- Netty报错 远程主机强迫关闭了一个现有的连接 异常
- 【Excel】绘图案例_常见复合图:簇状图+堆积图+折线图
- python与php8,后端php和python学哪个
- 贝塞尔曲线与贝塞尔曲面
- Linux:进程控制
- 泰勒公式浅谈原理(转)
热门文章
- 一专科生逆袭入职腾讯,真是小母牛坐飞机,牛逼上天了啊
- 102、基于51单片机手机无线充电器锂电池存电系统设计
- 【趣学算法】贪心算法
- java web前端_JavaWeb前端: JavaScript 简介
- Exadata中Infiniband交换机升级
- 康师傅饮料瓶盖编码泄漏 10万乐视会员流入黑市
- Socket传输信息或文件
- 东南大学计算机学院几个班,东南大学,最新专业录取数据分析:三大专业一个班,学霸最喜欢...
- Smark Link 双上行组网,断开环路
- 零基础怎么学测试?2022史上最全软件测试学习路线图+教程分享