1

我遇到了这个问题,经过广泛的研究,我发现了它的根本原因和一种对其他人有用的解决方法。

图标装饰器变得“模糊”,因为它在形状上的定位以及从像素到英寸的转换。

通常域特定语言的绘图表面具有 96dpi 的分辨率,并且图标装饰器使用 0.06 英寸的偏移量定位。将其转换为像素,它在绘图表面中变为 5.76 像素的偏移量。由于无法在屏幕上绘制“半像素”,GDI+ 会调整图像以尝试模拟“半像素”定位。这就是图像变得模糊的原因。

作为解决方法,我的建议是使用 Icon 装饰器类的 Horizo​​ntal Offset 和 Vertical Offset 属性来修复“半像素”装饰器的位置。如果您使用“0.0025”英寸作为垂直和水平偏移量,当图像定位从英寸转换为像素时,它将变为 6 像素,而不是 5.76。发生这种情况是因为现在的偏移量是默认值 0.06 英寸加上您设置的偏移量 0.0025 = 0.0625。

我还发现使用具有透明度的 png 图像会导致图像模糊,即使使用我在此处建议的偏移解决方法也是如此。将图像转换为位图格式可以解决问题。

如果有人对解决问题也有任何建议,请添加您的解决方案或解决方法。

4

1 回答 1

0

我通过创建一个新的位图解决了模糊问题:

覆盖方法下

public override System.Drawing.Image GetDisplayImage(ShapeElement parentShape)

我调用我的自定义方法 FixBitmap

Bitmap imageFixed = DynamicImageHelper.FixBitmap(image, out dynamicOffset);

此方法接收 DSL 将显示的原始图像,但返回完全相同的图像,但创建为新的位图

Bitmap fixedImage = new Bitmap(original, original.Width, original.Height);
return fixedImage;

如果您检查新的实例属性,差异很小(我不太记得是哪个,因为我大约在 1 年前实现了这个)。此外,我主要使用具有透明度的 .png 文件,它们看起来完全一样。

希望这有帮助。如果您需要任何进一步的帮助,请不要犹豫,问候,路易斯

于 2009-08-24T09:35:27.487 回答