Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
hate HEIC
Search
shimayuu
August 26, 2025
Programming
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
hate HEIC
webにおける画像の扱い方やHEIC形式の変換について書いてます
shimayuu
August 26, 2025
More Decks by shimayuu
See All by shimayuu
CyberAgent YJC Connect
shimaf4979
1
210
Other Decks in Programming
See All in Programming
スマートグラスで並列バイブコーディング
hyshu
0
140
Creating Composable Callables in Contemporary C++
rollbear
0
130
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
2.1k
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
260
AIで効率化できた業務・日常
ochtum
0
140
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
350
依存関係から依存物へ―Dependencyという言葉の歴史をひも解く
j_lee
0
120
RTSPクライアントを自作してみた話
simotin13
0
610
Lessons from Spec-Driven Development
simas
PRO
0
200
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
4
1.4k
AI時代のUIはどこへ行く?その2!
yusukebe
21
7.2k
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
5.1k
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
150
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
160
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
A Soul's Torment
seathinner
6
2.9k
Leo the Paperboy
mayatellez
7
1.8k
Done Done
chrislema
186
16k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
330
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
590
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
310
Transcript
shimayuu(Asa) 個人開発における HEIC形式との向き合いかた BEELT#11
大前提:ほとんどのプレビューはピクセル列である 簡単な例 : RGBAの場合 ピクセル ピクセル = 構成する最小の点
大前提:ほとんどのプレビューはピクセル列である Red,Green,Blue,Alphaを8bit(0~255)で表す 一つのピクセル = 8*4 = 32bit =4byteを持つ 縦、横ともに3つずつピクセル 4
* 3 * 3 = 36byte
大前提:ほとんどのプレビューはピクセル列である 3000*1600の写真なら...(単純計算) 4 * 3000 * 1600 = 19200000byte ≃
18.8MB (1MB = 1024byte)
圧縮とは 圧縮の一例:Run-Length Encoding (RLE)
圧縮とは(可逆圧縮) エンコード デコード ほぼ同じ
見ているものはデコードされたもの ハードウェアレベルだから超速い エディタで見れないのは デコード機能ないから
圧縮とは その他:DCT(離散コサイン変換)、イントラ予測 圧縮手法_WebP_Google for Developers https://developers.google.com/speed/webp/docs/compression?hl=ja 人間は色相よりも輝度に敏感 色相の解像度を下げちゃえ (Chroma Subsampling)
そもそも予測できたら良くね? 分割もっと多かったら良くね?
非可逆圧縮とは 圧縮したら完全な状態には戻せない 違う
HEICのアルゴリズム HEVC/H.265 ビデオ圧縮技術 がベース 単純な圧縮効率はHEIC>webP 「HEIF コンテナに HEVC を格納したファイル」であり
デコードが遅い、利権の問題で普及しずらかった(昔) https://www.mc-if.org/hollywood-workshop
Apple製品における自動補完機能早見表(実験済み) iOS Mac 写真アプリからなら どのブラウザでもjpegに自動変換 ファイルアプリからは送信できる Webkitブラウザ(Safari)はaccept明示で 変換、表示は可能 他のブラウザは変換されず、ブラウザ上 でほとんど表示できない
(ファイル自体は受け取れる)
なぜ自動変換 @umashiba(umashiba) Webブラウザ、レンダリングエンジン、JavaScriptエンジンの整理&図視化 https://qiita.com/umashiba/items/8cb47825624c5cb043d6 よく見るやつ
Webkit なぜ自動変換(iOSの場合) @umashiba(umashiba) Webブラウザ、レンダリングエンジン、JavaScriptエンジンの整理&図視化 https://qiita.com/umashiba/items/8cb47825624c5cb043d6 Appleがwebkit強制 ↓ どのブラウザから でも変換できる
時代の変化 EUで規制解除 Apple Inc. https://www.apple.com/newsroom/2024/01/apple-announces-changes-to-ios-safari-and-the-app-store-in-the-european-union/
時代の変化 日本でも新法成立で変わるかも 【スマホソフトウェア競争促進法、2025年12月〜】 BUSINESS LAWYERS 、スマホ競争促進法とは?アプリ提供者への影響を弁護士が解説 https://www.businesslawyers.jp/articles/1422
時代の変化 20xx年問題 HEICユーザーがブラウザの選択へ @umashiba(umashiba) Webブラウザ、レンダリングエンジン、JavaScriptエンジンの整理&図視化 https://qiita.com/umashiba/items/8cb47825624c5cb043d6
時代の変化 考察:あんま変わんなそう ①EUの現状→ほとんど変わっていない ②Appleの言い分もすごく筋が通っている https://www.jftc.go.jp/file/241205_gijiroku_4.pdf 令和6年12月5日(木) スマートフォンにおいて利用される特定ソフトウェアに係る 競争の促進に関する検討会(第4回)議事録
どこに刺さるか ・高画質写真管理をする人 ・webKit縛り撤廃を見据えてる人 ・脱獄iOS向けサイトを考えている人
実装編
実装方法一覧 フロント→heic2any→メモリすごい食う 汎用API→cloudflare,cloudinary→高いよ 😭 サーバー→そんなユーザーいる? サーバーレス→c++ライブラリきついよ
計測時間 EC2でlibvips+libheif(C++)→早すぎる lambdaでsharpライブラリ(libheifをリンク)→面倒
保守性 個人開発において大事なこと 拡張性 料金 1 4 95 : :
現在の設計
Docker buildxでもかなりmakeに失敗する libheif libvips libaom x265 libde265 Macだと環境が合わない sharp +
権利の問題でライブラリ にはlibheif関連含まれてないよ
Macだと環境が合わない DockerはLinux上だけ MacだとVMの上 ホスト依存も一部有
Macだと環境が合わない ならちゃんとLambda環境でビルドしよう libheif libvips libaom x265 libde265 レイヤーだと 256MBまで レイヤー
現在の設計
ありがとうございました! https://www.pamfree.com/