Есть ли у кого-нибудь указатели на то, как успешно нарисовать растровое изображение с альфа-канал с использованием Graphics :: DrawImage (), когда контекст Graphics создан на базе принтера HDC? Драйверы принтера обычно не поддерживают альфа-смешение - так что есть альтернатива рендерингу всего в закадровое растровое изображение и просто отправке его на принтер. Часто это невозможно, особенно при печати в высоком разрешении на широкоформатных принтерах.





Вы пробовали нарисовать белый прямоугольник для инициализации изображения перед вызовом метода DrawImage?
Все дело в том, что мне нужно, чтобы нарисованная линия за изображением была видна. Я попытался сначала заполнить прямоугольник цветом RGBA (255, 255, 255, 0), но это не помогает. Пиксели с нулевым альфа-значением печатаются как полностью прозрачные, но частично прозрачные пиксели отображаются полностью непрозрачными.
Что это за принтер? Обычные принтеры не печатают белым. Создайте изображение в памяти и «сгладьте» его (удалите альфа-канал), а затем распечатайте результат.
Спасибо, что задали этот вопрос, потому что я просто подумал о том, чтобы, возможно, попытаться использовать GDIplus, чтобы увидеть, сможет ли он решить проблемы, с которыми я все еще сталкиваюсь, с правильной печатью узорчатых ромбовидных форм. Хотя в настоящее время альфа-смешение, похоже, работает на большинстве принтеров, все же есть некоторые, которые рисуют черные углы на ромбах.
Помимо альфа-смешения, я также пробовал использовать ромбовидные области обрезки для окружения формы, но обычно принтеры, которые не поддерживают альфа-смешение, похоже, также не поддерживают многоугольные области обрезки. Я пробовал скопировать из printer-dc в растровое изображение, чтобы заполнить его перед рисованием ромба сверху, надеясь, что это позволит мне вернуть (в углы) то, что было раньше. Это тоже не работает, потому что похоже, что проблема сводится к тому, что драйвер принтера на самом деле не знает, что печатается на какой части страницы.
В моем случае следующий план - попробовать использовать большую растровую кисть для рисования алмазной заливки непосредственно на hdc принтера. Я подозреваю, что есть умеренная вероятность того, что это тоже не сработает для некоторых принтеров. Похоже, это не вариант для того, что вы делали.