簡體   English   中英

現有背景上的Android Blend透明png圖像

[英]Android Blend transparent png image on existing background

我正在嘗試在Android的OpenGL ES 1.x中創建模擬儀表。 我使用綠色的中點定理創建了一個簡單的圓。 現在,我想在圓圈周圍放置一些數字以進行儀表讀數。 由於OpenGL沒有本機文本呈現API,因此我嘗試加載這樣的PNG圖片 在此處輸入圖片說明 上面的讀數和其余圖像是透明的。

現在,必須將哪些參數傳遞給glBlendFunc()函數才能實現此目的。 我嘗試了許多不同的組合,但是沒有用。

這是Android上的常見問題。 您不能使用Android Bitmap類加載其中具有透明區域的紋理。 這是因為位圖遵循Porter-Duff規范進行alpha混合,並且位圖通過以預乘格式(A,R * A,G * A,B * A)存儲圖像來優化每像素alpha的圖像。 這對Po​​rter-Duff很有用,但對OpenGL(不需要非預乘(ARGB)格式)的OpenGL來說非常有用。 這意味着Bitmap類只能與完全不透明(或沒有按像素的alpha)的紋理一起使用。 本文詳細介紹:

http://software.intel.com/zh-CN/articles/porting-opengl-games-to-android-on-intel-atom-processors-part-1

只需嘗試傳遞以下Alpha混合值:

glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);

希望對您有所幫助。

我不認為(即使在2.2版)Alpha PNG也不是Android位圖加載算法的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM