0

我得到一个 1020x780 的 jpeg 图像,我正在尝试将其调整为 111x85(按比例),但它出现像素化。

我试过了

a) 将图像分配给 TImage 组件并设置 Scaled/Resize 属性。

b)这里的调整代码http://www.delphigroups.info/2/4/313095.html

c)这里的调整代码http://www.swissdelphicenter.ch/torry/showcode.php?id=1896

然而,他们都出来像素化。

如果我在 Photoshop 中调整大小,效果会很好。让它那么好将是理想的,但我知道他们花了很多时间/代码来调整大小,所以即使是中间的东西也会很棒。

有什么建议么?

4

4 回答 4

5

在我的博客中,我谈到了使用/实现抗锯齿调整图像大小。
阅读文章并在此处测试代码。它是用西班牙语编写的,但您可以使用自动翻译。无论如何,您只能阅读代码。

查看 apply 和 not apply 代码的区别:

在此处输入图像描述

该代码适用于 BMP,但您可以先转换图像并应用它。

于 2011-04-27T09:57:06.180 回答
5

看看Graphics32库。它为 32 位位图实现了各种图像重采样和转换算法。

于 2011-04-27T10:01:14.417 回答
1

您可以使用外部库或组件,例如 ImageMagick 或一些现成的组件,而不是使用内置的 TImage 进行缩放。ImageMagick 至少存在一个 Pascal 包装器

http://wiki.freepascal.org/PascalMagick

,但我自己从未使用过。

于 2011-04-27T09:43:49.257 回答
1

我已成功使用 HiComponents ImageEn 库将图像大小调整到大约 250 像素。那是不久前的事了,但我记得结果相当令人满意。 http://www.hicomponents.com/main/products/products-imageenvcl - 它现在是免费的,如果你在 Delphi 中进行任何图形编程,非常值得一看。

于 2011-04-27T10:42:07.210 回答