我聽說在進行圖層混合時只需要預乘alpha。我怎麼知道我的原始圖像是預乘alpha?如何知道圖像是「預乘Alpha」?
3
A
回答
6
你不能。
您可以檢查的唯一情況是不是預乘。要做到這一點,遍歷所有的像素,看看是否有一個顏色值比α值高的值允許if(max(col.r,col.g,col.b) > 255*alpha)//not premul
。任何其他情況都不明確,可能或不可能被預乘。你最好猜測的可能是假設他們不像大多數PNG那樣。
編輯:實際上,即使我發佈的代碼也不會工作,因爲有很多PNG與白色啞光,所以圖像將不得不包含具有0
的alpha值的部分以首先確定啞光顏色。
3
Android Bitmap
存儲從帶有預乘alpha的PNG加載的圖像。通常情況下,您無法從中獲得未預先採集的原始顏色。
爲了加載圖像,而無需RGB渠道被預乘我不得不使用第三方PNGDecoder
從這裏:http://twl.l33tlabs.org/#downloads
相關問題
- 1. 預乘alpha混合
- 2. DXT5的預乘alpha值
- 3. 是否有可能知道DOM/JavaScript圖像是否具有Alpha通道
- 4. Java:如何知道TIFF圖像是Group4?
- 5. OCR預先知道字體的圖像
- 6. FLV預乘alpha通道 - 作爲swf添加到網頁中?
- 7. 如何將圖像與可可中另一幅圖像的alpha相乘?
- 8. 使用Vector4預乘Alpha組合
- 9. PNG預乘Alpha,iOS模擬器與iPad
- 10. 讀出一個FBO與預乘alpha
- 11. 如何知道是否從位圖圖像視圖或資源
- 12. 乘以其alpha的每個像素Open GLES 1.1(預乘)然後反轉
- 13. 帶「alpha」通道的「直」版圖像
- 14. Win32剪貼板和alpha通道圖像
- 15. 使用Alpha通道獲取CGPath圖像
- 16. 添加Alpha通道的圖像與PerlMagick
- 17. 如何知道鼠標點擊是否在圖形圖像java
- 18. 如何知道單擊的圖像
- 19. 如何知道matlab的圖像類型
- 20. 如何知道從縮放圖像
- 21. 有人有一個優化的函數預乘alpha位圖嗎?
- 22. 任何人都知道開放源代碼做預覽圖像
- 23. 如何知道圖片預覽是否被丟棄(或圖片是重拍)
- 24. 的iOS/Objective-C的如何知道如果圖像是其他
- 25. 如何使用IImgCtx獲取帶有Alpha通道的圖像?
- 26. 如何從PHP中的圖像檢索Alpha通道?
- 27. 如何使用Pillow從圖像中提取Alpha通道
- 28. 如何添加alpha通道到該圖像使用ImageMagick
- 29. 如何在Python OpenCV中讀取TIFF圖像的Alpha通道?
- 30. 如何設置位圖預設置Alpha的alpha?
其實*所有* PNG格式不預乘。資料來源:第12.8節,http://www.w3.org/TR/PNG-Rationale.html – 2012-05-25 16:04:43
@MarkRansom不幸的是,並非所有工具都符合此規範。 – clamp 2014-01-28 16:33:11
@clamp那麼這些工具在生成PNG輸出時會有錯誤。規範說PNG文件必須*不*預乘alpha。 – 2014-01-28 17:07:08