Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2017/05/29 CA.apk I/O報告会 LT

2017/05/29 CA.apk I/O報告会 LT

「CA.apk #3 - Google I/O 2017 報告会」でLTしたスライド
https://cyberagent.connpass.com/event/55405/

A00399b43e9b2c8be637d99f478f8533?s=128

mstssk

May 29, 2017
Tweet

More Decks by mstssk

Other Decks in Technology

Transcript

  1. About “Understanding color” mstssk a.k.a りんご (株式会社トップゲート)

  2. Copyright © 2016 TOPGATE, Inc. Google I/O 2017 フィードバックセミナー https://topgate.connpass.com/event/56192/

      Studio Geeks   2017/06/06 https://goo.gl/WUUJ5f
  3. Understanding color Romain Guy, Android Graphics team https://events.google.com/io/schedule/?sid=e20f886e-8271-49f7-b695-72eb2995417e https://youtu.be/r8NeG0wmFXM

  4. 色とは という話が20分続く https://ja.wikipedia.org/wiki/可視光線

  5. Roman 「AnDev 360で同じこと話したら  ”数学とか数式とか多すぎ”って  言われちゃった…」

  6. Roman 「代わりに  今回は物理学多めにするね!」

  7. 色とは 色相 輝度 彩度 ※ただし、あくまで そう人間が知覚してるだけ

  8. 光とは 波と粒子の二重性を持つ 光子 波動性を持った 電磁波 ガンマ線 X線 紫外線 可視光線 赤外線

    マイクロ波 電波 目が感じ取るのは可視光線
  9. 目の錐体細胞が三原色に対応する可視光線のスペクトルを感じ取る https://ja.wikipedia.org/wiki/色

  10. 色の知覚 ※実際には目で感じた信号を 更に脳が後処理で補正する。 光源スペクトル × 物体の表面の色スペクトル × 錐体細胞の感じるスペクトル ↓ 知覚する色

  11. 色モデル • RGBの他にCMYKやL*a*bがある • Android OではRGBをfloatで扱えるAPIが追加 色をfloatで扱うほうがより融通が効く ◦ #ff436d ◦

    255,67,109 ◦ 1.0,0.26,0.43 ←New!
  12. 色空間とは 三原色 白色点 ガンマ値 色モデルを”色”に紐付ける

  13. 色空間と色度図 https://commons.wikimedia.org/wiki/File:Colorspace.png • 再背面の馬蹄形が人間が見える色範囲 • だいたいRGBと聞いて考えるのはsRGB • 別の色空間では色を表現する範囲も別 sRGBとAdobe RGBの緑0.0,1.0,0.0は

    全く別の緑色になる • デバイスにより色空間が違う
  14. Android 1.0以来の問題点 • Androidでは”色”を取り扱っていなかった • Bitmapクラスは色空間を扱えなかった… • intでしか色を扱えない

  15. Roman 「クレイジーな新APIを紹介するぜ」 本当にこう言ってる

  16. Color Management: Android O での”色” • Adobe RGBなどより広域な色域のディスプレイに対応 • より広い色空間を使うフラグをマニフェストに追加

    <activity android:colorMode="wideColorGamut" /> ◦ Extended sRGBというsRGBの7.5倍の独自色空間を使う ◦ かなりリソースを食うので要注意 • 16ビットPNGやカラープロファイルのサポート • res/*-widecg リソース区分追加 (wide color gamut) • 開発者オプションにsRGBモード機能追加 https://developer.android.com/preview/api-overview.html#cm
  17. Color Management: Android O での”色” • android.graphics.Colorクラスをインスタンス化可能に ※これまではstaticメソッドを持つだけのユーティリティだった ◦ Color

    c = Color.valueOf(1.0, 1.0, 1.0, 1.0, colorSpace); ◦ 色空間同士の色の変換処理 ◦ Bitmapにも色空間のAPIが増えている • Colorインスタンスをlongで代わりに扱う手段 ◦ 赤(16bits), 緑(16bits), 青(16bits), Alpha(10bits), 色空間(6bits) ◦ @ColorLong アノテーション • セッション中では色空間を考慮してBitmapを扱うテクニックを紹介 https://developer.android.com/reference/android/graphics/Color.html
  18. DON’T PANIC 色々機能は増えたが、どのように描画されるかというプロセスに介入できるわけでは ない。 以下の事だけ気をつけておこう。 • ディスプレイをキャリブレーションしよう • sRGBのディスプレイで適切に表示されることを確認しよう •

    画像ファイルにカラープロファイルが入っていることを確認しよう
  19. Understanding color Romain Guy, Android Graphics team https://events.google.com/io/schedule/?sid=e20f886e-8271-49f7-b695-72eb2995417e https://youtu.be/r8NeG0wmFXM