В настоящее время я работаю над генератором PDF. Мне нужно сначала нарисовать фоновое изображение, а затем нарисовать темный слой с 85% прозрачности. Я могу сделать это красиво, но когда я хочу нарисовать два изображения после этого, эти изображения также получат прозрачность, и это не то, что я хочу.PDFsharp - Изображение с прозрачностью
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);
Есть ли причина, по которой я не могу просто нарисовать изображения без прозрачности? Это просто что-то простое, что я сейчас не делаю?
Спасибо.
Прозрачность, которую вы установили для кисти (которая не используется в фрагменте кода) не влияет на прозрачность изображения. Изображения рисуются с прозрачностью, установленной на изображении. –
Изображение имеет прозрачный фон, сам логотип не прозрачен (как белый текст). Но GraphicsState объекта XGraphics необходимо восстановить после рисования прозрачного темного слоя, чтобы исправить эту проблему. Я не знаю, почему на рисунок изображения влияет кисть, даже если я знаю, что изображение не может быть установлено на более низкую прозрачность. –
@PDFsharpTeam: метод DrawPageBackground (содержимое которого можно увидеть в моем собственном ответе) изменяет только фоновое изображение на правильное разрешение, чтобы вертикально вставить страницу pdf. –