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
130
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
20260722_microCMSで考える、AI時代のコンテンツ運用設計
yosh1
0
120
Claude Team Plan導入・ガイド
tk3fftk
0
240
AWS CDK を「作」ってみた 〜フルスクラッチで見えた CDK の裏側〜 / aws-cdk-from-scratch
gotok365
3
2.6k
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
16k
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
PRO
1
180
これからAgentCoreを触る方へトレンドはGatewayです
har1101
6
510
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
410
作るコストが小さくなった時代 幸せに働くために改めて考えたいこと 〜エンジニアとして価値を出し続けるために注視している二分野〜
yuppeeng
0
130
はてなアカウント基盤 State of the Union
cockscomb
1
1.3k
任せる範囲はこう広がった / How the Scope of AI Delegation Has Expanded
nrslib
1
280
Claude Opus 4.6以後の受託開発エンジニアの変化(Claude Code開発ノウハウ大公開スペシャルbyクラスメソッド)
iidatakuma
1
870
AIキャラアプリkaiwaの低遅延音声通話基盤をどう作ったか - AWS Gravitonで支える低遅延・低コストAI Agent基盤
mogamit
0
190
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
190
A better future with KSS
kneath
240
18k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
570
The SEO Collaboration Effect
kristinabergwall1
1
510
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
The SEO identity crisis: Don't let AI make you average
varn
0
520
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.7k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Deep Space Network (abreviated)
tonyrice
0
230
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/