2008-09-15 31 views
5

有沒有人有任何關於如何在基於打印機HDC創建的圖形上下文爲 時使用Graphics :: DrawImage()成功繪製具有 alpha通道的位圖的指針?打印機驅動程序通常不支持阿爾法混合 - 所以是否有替代方法將所有內容都渲染到離屏位圖並將其發送到打印機。這通常是不可行的,特別是對於大尺寸打印機的高分辨率打印。帶透明位圖的GDI + DrawImage()與打印機

回答

0

在調用DrawImage方法之前,您是否嘗試繪製白色矩形來初始化圖像?

0

整個問題是我需要圖像後面的線條圖形可見。我確實嘗試用(255,255,255,0)的RGBA顏色首先填充矩形,但這沒有幫助。 Alpha值爲零的像素會被打印爲完全透明,但部分透明的像素會被完全遮蓋。

1

是什麼樣的打印機?普通打印機不打印白色。創建內存中的圖像並將其「變平」(去除Alpha通道),然後打印結果。

0

感謝您提出這個問題,因爲我只是想嘗試使用GDIplus來查看它是否能夠解決我仍然面臨的問題,以便讓圖形化的菱形形狀正確打印。雖然現在α混合似乎在大多數打印機上都能正常工作,但仍有一些在鑽石上畫黑角。

除了alpha混合,我也嘗試使用菱形的剪輯區域來包圍形狀,但通常不支持alpha混合的打印機似乎也不支持多邊形剪輯區域。我試圖從打印機 - 複製到一個位圖,以便在頂部繪製鑽石之前進行填充,希望這可以讓我在之前放置(在角落裏)。這不起作用,因爲看起來問題歸結爲打印機驅動程序實際上不知道在頁面的哪個部分打印什麼。

在我的情況下,我的下一個計劃是嘗試使用一個大的位圖筆刷直接將鑽石填充到打印機hdc。我懷疑這對某些打印機來說也會失敗。這聽起來像它可能不適合你在做什麼。