
我将原始文本留在底部并缩短了这一点.我希望这说清楚.
我正在处理从另一个程序返回给我的图像.我可以得到一个图像,例如,72 DPI下的8×10或16×20的相同图像,也是72DPI.
我在Java工作.我想做的是拍摄16×20图像并调整大小.如果可能的话,我只想更改文件,而不是在72DPI时为16×20,在144DPI时为8×10.
我知道它仍然是相同数量的像素,但是观众会说出图像有多大以及DPI是什么,还有一些是打开图像到它的全尺寸,所以我宁愿他们将16×20视为一个较小的图像更高的分辨率.
我可以用Java做到吗?我会丢失任何数据吗?我该怎么做 – 我可以只更改png或jpg文件中的元数据吗?
—–(这里的原问题)—–
我已经看到了一些接近这个的问题,但这有点不同.
我知道你可以使用Java(also here)中的图像decrease image resolution.我所做的任何搜索都关注降低图像的分辨率.
我有相反的问题.我正在处理一张我正在72DPI中恢复的图像.优点是我可以增加图片的大小,所以我可以使尺寸100%,200%,400%等.所有图像均为72DPI,因此如果我使用200%进行缩放,则在查看器中打开图像并使其与100%图像大小相同,我看到更好的分辨率.
为了清楚起见 – 我从别人那里得到一张图片,它可以从PDF或图片中生成,但我从另一个程序中获得了图片.无论我做什么,这张图片都是72DPI.我无法改变这一点,但我可以指定大小为200%,它仍然会回到72DPI,只有两倍大,而且细节更多.
我不是图形专家,这是我第一次使用图形进行任何编程.输出可能是jpg或png,因此格式并不重要. (如果需要,我也可以使用其他格式.)
假设原始图像是一张照片 – 8“x 10”,并且是72 DPI.如果我要求200%变焦,我会在72DPI时获得16“x 20”的图像.
在Java中,我可以将更大的16“x 20”72DPI图像更改为8“x 10”的144DPI图像而不会丢失数据吗?换句话说,DPI增加一倍,但缩小了一半?
而且,最重要的是,我可以在不失去解决方案的情况下完成吗? (我认为可以做到.)
重要的是图像中的总像素数.规定的DPI正是DPI将达到特定规模的水平.以72dpi拍摄8×10图像.它有576×720像素.如果缩放到200%,你仍然拥有相同数量的像素,但现在它们将分布在线性尺寸的两倍以上,这意味着单个像素将更大.一些软件将试图通过内插像素来增加分辨率,即通过平均最近邻居来创建新像素.这可以给人以更高分辨率的印象,但图像不再包含任何数据.它总是具有软化图像的效果,尤其是任何锐利的边缘或线条.
如果在不重新采样的情况下缩小图像的大小,则会增加打印或显示的分辨率,但图像会变小.对于同一图像,将DPI增加到144会将图像尺寸减小到4×5.
转载注明原文:在Java中提高分辨率和缩小图像大小 - 乐贴网