擅长:python、mysql、java
<p>我想这就是你想用PIL做的。请注意,我使用的测试图像是您问题中的图像,它是RGB图像,而不是灰度图像,因此转换后的图像也是如此。如果在调整图像大小之前将其转换为灰度,图像会小得多(PIL也可以轻松做到这一点)</p>
<p>代码还假定图像是正方形的。但也可以扩展到处理任意大小,方法是在宽度和高度上独立遵循相同的模式</p>
<pre><code>from PIL import Image
print_dpi = 300
print_size = 3.46 # Inches
filename = 'STM_topography.png'
new_filename = 'STM_topography_resized.png'
img = Image.open(filename)
print(f'{img.size=}')
width, height = img.size
new_size = int(print_dpi * print_size)
img = img.resize((new_size, new_size), resample=Image.BICUBIC)
# img.show()
img.save(new_filename, dpi=(print_dpi, print_dpi))
</code></pre>