※ 本文轉寄自 ptt.cc, 文章原始頁面
作者ReDmango
標題

Re: [新聞] 別用這照片當手機桌布!恐死當整支掛

時間
最新2020-06-02 18:08:00
留言42則留言,42人參與討論
推噓42 ( 4200 )
手機發文 排版見諒 有缺字請告知 後記: --- 在AOSP裡面找到: https://bit.ly/2BrUkLP packages/SystemUI/src/com/android/systemui/glwallpaper/ImageProcessHelper.java 其中第115行到127行的方選: private Bitmap toGrayscale(Bitmap bitmap) { int width = bitmap.getWidth(); int height = bitmap.getHeight(); Bitmap grayscale = Bitmap.createBitmap(width, height, bitmap.getConf ig()); Canvas canvas = new Canvas(grayscale); ColorMatrix cm = new ColorMatrix(LUMINOSITY_MATRIX); Paint paint = new Paint(); paint.setColorFilter(new ColorMatrixColorFilter(cm)); canvas.drawBitmap(bitmap, new Matrix(), paint); return grayscale; } 看來是會將任意色域皆直接用算的算到預設(那就是sRGB),如果原本的Bitmap過大,此種方 式可能會導致一個檔案擁有超過其色階量(X bit)的資訊量,就溢位惹。 例如以下狀況可能導致溢位: 1.8bit色階的sRGB檔,R或G或B卻有500。 2.10bit色階的sRGB檔,R或G或B卻有2000。 解決方案很簡單: A. 不要改色域,維持原圖檔所屬色域描述。(改只要一秒,但不是好方法) B. 套用描述,或算式最後套用limiter,讓資訊量不會超過其bitmap。 --- 麻瓜化的類遊戲說明方法: 將大世界的地圖轉換為小世界的地圖,結果小世界的地圖塞不下那麼多的城市,所以有些城 市跑到能生成的地圖外面,系統載入這些城市,就會有城市懸浮在虛空之中。玩家如果觸發 了某些條件,可能才會進入設計者沒想到會消失的城市之中,甚至開遊戲時就死當。 --- 為何我測ProPhoto RGB to sRGB就沒事,而Java去轉換就出事: 我原先測試時是直接套用.icc的懶人方式去轉換,而不是直接用公式算。描述檔會確保單RG B最高值不會超過圖檔自身所屬色階,所以用此種方式自己從ProPhoto RGB轉sRGB的檔案不 會有問題。 改成用算式去把ProPhoto RGB的顏色值直接算成sRGB,再硬套進去超過bitmap的資訊量,就 會有此問題。 --- 只有設成桌布會出事嗎? 理論上只要將此轉換後產生的圖檔,移轉到其他作業系統中,只要讀取到記憶體可能就會導 致區塊溢位,所以就連看這個圖都可能出事。 --- 為何有些Android版本轉換會有事,有些不會: 有直接套用AOSP裡面這個ImageProcessHelper.java的Bitmap toGrayscale的系統,就一定 會有一樣的問題。而把轉換方式重寫的就可能不會有此問題。 --- 我在網路上抓桌布圖來設成桌布,會不會有此問題? 在網站中顯示的圖片,99.99%都是sRGB,因此不用擔心。 極少攝影師在最終出圖時會選AdobeRGB或ProPhotoRGB,甚至其他更少見的廣色域描述,因 為大眾螢幕根本顯示不出來,會導致顏色有大幅色差。會將最終檔案設為廣色域描述的,不 是要將檔案交給有同步色彩管理的終端,就是不知道自己在做啥單純就射惹。 而一個8Bit的Jpeg,卻用ProPhotoRGB描述,很可以確定是後者:不知道在做啥,低色階、 高破壞卻套廣色域,黑人問號。 不精確的麻瓜化比喻:你在摩托車裡面加了F1引擎(ProPhotoRGB),八公升的油箱(8bit), 然後傳動組還限制了你最高只能跑到時速120KM(JPG),接著一拜下去車就解體了。 而各大能貼圖的主流社群網站,在張貼時一定會將廣色域全都轉成sRGB,肉眼會大幅可見到 前後顏色落差。從這些網站抓到的圖檔,100%一定是sRGB,不會有任何問題可以安心食用。 --- 我在手機拍的照片,會不會可能有此問題? 所有手機原廠相機App拍出來的圖檔一定是sRGB,因此不用擔心。 (因為怕有奇葩的第三方App可以指定廣色域所以只寫原廠) 稍微有一些基礎功能的相機,可以在機身設定中選擇廣色域;影像編輯軟體(如:Photoshop 、Lightroom、Capture One、GIMP)可以指定與編輯廣色域圖檔。因此透過這些相機或軟體 渲染出的圖檔,就有可能遇到此問題。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.144.33 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/MobileComm/M.1591070699.A.16C.html

42 則留言

niverse, 1F
推trace code

davendaven1, 2F
推個

Toy17, 3F
專業文推

n796885, 4F

hyghmax1202, 5F
專業推推

s91156, 6F
厲害 推

Bob9154, 7F
閾值

hermithsieh, 8F
推專業

silver00, 9F
推專業

ohmylove347, 10F
專業推

a3831038, 11F
屌打

sseass, 12F
專業!

emptie, 13F
謝謝:)
※ 編輯: ReDmango (180.217.144.33 臺灣), 06/02/2020 13:03:07

ericlian0770, 14F
給推專業

gp03dan, 15F
有趣

nichjack, 16F
推專業

juicedrink, 17F
專業推

Pujols5566, 18F
厲害

jkamberson, 19F
推推

james732, 20F
推說明

kelvin0004, 21F
還有麻瓜類遊戲解釋XD

watchdogs, 22F
專業推

ShibaTatsuya, 23F
推專業

YangChang, 24F
太神啦,麻瓜秒懂

Mr0829, 25F
我果然是麻瓜QQ

oneOnTheRoad, 26F
來這是我的膝蓋XDD

illya65536, 27F
推trace code

timwu31510, 28F
麻瓜推個

john5912, 29F

jimei2, 30F
推解釋

W0ayne, 31F
推一個專業解釋,讓麻瓜都能懂

more2536, 32F
推專業

WLR, 33F
專業

ShangLai, 34F

MetalHong, 35F
太強了!!推!

leo945haha, 36F
推麻瓜化解釋

aibohanase, 37F
麻瓜解釋給推 誰叫我是麻瓜

s815225, 38F

Kismeter, 39F

Comebuy, 40F
0.0

OverInfinity, 41F
不是,這是把彩色圖轉成灰階圖的函數

EQUP, 42F
本麻瓜感謝解釋