求Java图像放大后不失真的代码!!!网上没找到~!
发布网友
发布时间:2022-05-02 02:30
我来回答
共3个回答
热心网友
时间:2022-06-27 00:26
其实,这个算法老复杂了。
最近像素插值算法是最简单的一种插值算法,当图片放大时,缺少的像素通过直接使用与之最接近的原有的像素的颜色生成,也就是说照搬旁边的像素。它是三种内插值方式中质量最差的一种,用该方法修改后的图像边缘有锯齿,但速度较快。
双线性插值算法是沿水平和垂直方向对周围像素取样,然后建立像素颜色总数的平均颜色值。这种算法极大地消除了锯齿现象,在计算速度与质量两个方面都居于三种方法中间地位。
双立方插值算法是在水平、垂直和对角线方向对像素取样,然后使用总颜色的加权平均值建立新像素,它是三者中运算速度最慢,但效果最佳的一种。
热心网友
时间:2022-06-27 00:26
public Image getScaledInstance(int width,
int height,
int hints)
创建此图像的缩放版本。返回一个新的 Image 对象,默认情况下,该对象按指定的 width 和 height 呈现图像。即使已经完全加载了初始源图像,新的 Image 对象也可以被异步加载。
如果 width 或 height 为负数,则替换该值以维持初始图像尺寸的高宽比。如果 width 和 height 都为负,则使用初始图像尺寸。
参数:
width - 将图像缩放到的宽度。
height - 将图像缩放到的高度。
hints - 指示用于图像重新取样的算法类型的标志。
返回:
图像的缩放版本。
hints 有以下几种参数:Image.SCALE_SMOOTH(图形质量优先) Image.SCALE_DEFAULT使用默认的图像缩放算法。Image.SCALE_FAST选择一种图像缩放算法,在这种缩放算法中,缩放速度比缩放平滑度具有更高的优先级。
热心网友
时间:2022-06-27 00:27
每张图都有原始大小,放大超过了原始大小一定会失真,没有什么不失真的代码或技术