【发布时间】:2015-07-16 08:40:41
【问题描述】:
我目前正在开发 PDF 生成器。我需要先绘制背景图像,然后绘制一个透明度为 85% 的暗层。我可以很好地绘制它,但是当我想在之后绘制两张图像时,这些图像也会获得透明度,这不是我想要的。
XBrush brush = new XSolidBrush(XColor.FromArgb((int)(.85 * 255), 255, 255, 255));
DrawPageBackground(gfx,backgroundImage,page.Width.Value,page.Height.Value);
gfx.DrawRectangle(b,0,0,gfx.PageSize.Width,gfx.PageSize.Height );
gfx.DrawImage(otherImage,25,25);
有什么理由我不能只绘制没有透明度的图像吗?只是我现在没有做的简单的事情吗?
谢谢。
【问题讨论】:
-
您为画笔设置的透明度(在您的代码sn-p中没有使用)对图像的透明度没有影响。使用图像中设置的透明度绘制图像。
-
图像具有透明背景,“徽标”本身不透明(因为它是白色文本)。但是需要在绘制透明暗层后恢复XGraphics对象的GraphicsState来解决这个问题。我不知道为什么图像的绘制会受到画笔的影响,即使我知道图像不能设置为较低的透明度。
-
@PDFsharpTeam:DrawPageBackground 方法(其内容可以在我自己的答案中看到)仅将背景图像调整为正确的分辨率以垂直适合 pdf 页面。