java - 调整图像大小而不损失质量

标签 java image bufferedimage resize-image

我正在开发一个网络应用程序:

  1. 上传 JPEG 图像
  2. 从中提取区域(使用坐标)
  3. 并调整提取区域的大小,而不会损失图像质量。

我使用此代码来执行此操作:

//method to extract an image 
def extractedImage=exractImageRect( imageFile ,  x , y , h , w)

ImageIO.write(extractedImage, "PNG", new File("C:\\Users\\Ma\\Documents\\out.png"));
int type = extractedImage.getType() == 0? BufferedImage.TYPE_INT_ARGB : extractedImage.getType();

//resize the image 
resizedImage =resizeImage(extractedImage,  type ,w*2 , h*2)

但是使用此代码,调整大小后的图像质量非常低。我也使用了 RenderingHints:同样的问题。

所以我的问题是:在使用原始图像的高度和宽度(其具有 300dpi 和 2479 宽度)的同时保持图像质量的最佳方法是什么,3508高度?

最佳答案

and resizes the zone extracted, without loosing image quality .

我认为这部分是不可能的。假设您有一张 10px X 10px 黑色矩形的图片。现在将尺寸加倍,将得到一个 20px X 20px 的矩形。最初你有 100 个黑色像素,但现在你有 400 个像素,其中 100 个是黑色的,300 个是未知的。您需要通过某种算法找出您的像素颜色是什么。

在这种情况下,它更容易,因为它是黑色的,但如果你有一张图片而不是一个矩形,则不可能准确地找出哪些颜色像素属于未知像素,所以你必须近似,但近似并不完美大多数情况下,因此会出现质量损失

关于java - 调整图像大小而不损失质量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23625167/

相关文章:

java - 如果按钮被读取为节点,如何在 JavaFX 中获取按钮的文本?循环遍历按钮组/VBox。将其作为节点返回

css - css 可以进行特殊导航吗?

Java 将一个 BufferedImage 与另一个进行比较

java - 如何将 long 类型转换为 String 类型?解决: 'Encode(java.lang.string)' in android.net.Uri无法应用于long

java - 意外的 JAXB 错误

java - 单击菜单项时如何显示 JavaFX Web View ?

java - 在 spring boot rest api 中将图像发送到角度客户端?

java - jdbc ODBC 连接

java - 如何为每个样本 32 位、3 个样本图像数据创建 BufferedImage

java - 从 rgb 像素值创建缓冲图像