A single-file local image/video viewer and converter with HEIC, PDF, and ICO support — built for browsing and converting iPhone photo exports.
HEIC etc Viewer is a single HTML file that runs entirely in your browser. No data is sent to any server — all file processing happens locally between your browser and your local storage. This means it works equally well whether hosted on the web or run locally. Supports HEIC/HEIF, JPEG, PNG, WebP, GIF, AVIF, SVG, BMP, TIFF, MP4, WebM, MOV, PDF, and ICO. Folder navigation is provided via a collapsible tree panel. Key features include thumbnail caching, a lightbox viewer with drag-to-select zoom, checkerboard background for transparent images, video loop, and slideshow mode. Static images (HEIC/HEIF, JPEG, PNG, WebP, BMP, TIFF, AVIF) can also be converted and saved as WebP, PNG, JPEG, or PDF — one file at a time, or in bulk as a zip.
Built as a single HTML file with no build tools or package dependencies.
- Vanilla HTML / CSS / JavaScript — no frameworks
- libheif.js — HEIC/HEIF decoding via WebAssembly, loaded from CDN
- PDF.js — PDF thumbnail rendering via WebAssembly, loaded from CDN
- jsPDF — PDF generation for the convert-to-PDF feature, loaded from CDN
- client-zip — zip generation for bulk conversion downloads, loaded from CDN
- Canvas API — thumbnail generation for video frames and zoom region rendering, and image re-encoding for the convert feature
- File System API (
webkitdirectory,DataTransferItem.webkitGetAsEntry) — local folder access and directory tree traversal
The easiest way is to open the hosted version on GitHub Pages:
https://securecat.github.io/heic-etc-viewer/
Your files never leave your device.
Alternatively, download heic-etc-viewer.html and open it directly in Chrome.
Opening via file:// disables folder drag & drop due to browser security restrictions. To enable it, run a local server in the same folder:
npx serve .
# or
python -m http.server 8080
Then open http://localhost:3000/heic-etc-viewer.html in Chrome.
- The lightbox's prev/next nav buttons had a different hover color (
#3a3a3a) than the header's icon buttons (#6c6c6c, e.g. tile view, slideshow); unified to match
See CHANGELOG.md for full history.
HEIC、PDF、ICOに対応した、単一ファイルで動作するローカル画像・動画ビューアー&コンバーター。iPhoneから書き出した写真の閲覧・変換に最適化されています。
「HEIC etc Viewer」は、ブラウザ上で完全に動作する単一のHTMLファイルです。データがサーバーに送信されることはなく、すべてのファイル処理はブラウザとローカルストレージの間で完結します。そのため、Web上でホストする場合でもローカルで実行する場合でも、同様に利用可能です。 対応形式は、HEIC/HEIF、JPEG、PNG、WebP、GIF、AVIF、SVG、BMP、TIFF、MP4、WebM、MOV、PDF、ICOです。フォルダの移動は、開閉可能なツリーパネルで行えます。主な機能として、サムネイルのキャッシュ、ドラッグ操作でズーム範囲を選択できるライトボックスビューア、透過画像用の市松模様の背景表示、動画のループ再生、スライドショーモードなどを備えています。静止画(HEIC/HEIF、JPEG、PNG、WebP、BMP、TIFF、AVIF)はWebP・PNG・JPEG・PDFに変換して保存することもでき、1ファイルずつでも、まとめてzipでも保存できます。
ビルドツールやパッケージの依存関係を使用せず、単一のHTMLファイルとして構築されています。
- Vanilla HTML / CSS / JavaScript — フレームワーク不使用
- libheif.js — WebAssemblyによるHEIC/HEIFデコード(CDNから読み込み)
- PDF.js — WebAssemblyによるPDFサムネイルのレンダリング(CDNから読み込み)
- jsPDF — PDF変換保存機能のPDF生成(CDNから読み込み)
- client-zip — 一括変換ダウンロード時のzip生成(CDNから読み込み)
- Canvas API — 動画フレームのサムネイル生成・ズーム領域のレンダリング・変換機能での画像再エンコード
- File System API (
webkitdirectory,DataTransferItem.webkitGetAsEntry) — ローカルフォルダへのアクセスおよびディレクトリツリーの走査
最も簡単な方法は、GitHub Pagesでホストされているバージョンを開くことです:
https://securecat.github.io/heic-etc-viewer/
サーバーへデータが送信されることはありません。ファイルの処理はすべて、ブラウザとローカルストレージの間でローカルに行われます。
あるいは、heic-etc-viewer.html をダウンロードし、Chrome で直接開いてください。
file:// 経由で開くと、ブラウザのセキュリティ制限により、フォルダのドラッグ&ドロップが無効になります。これを有効にするには、同じフォルダ内でローカルサーバーを起動してください:
npx serve .
# または
python -m http.server 8080
ローカルサーバー起動後、Chromeで http://localhost:3000/heic-etc-viewer.html を開きます。
- ライトボックスの左右移動ボタンのhover色が、header内のアイコンボタン(タイルビュー・スライドショー等)の
#6c6c6cと異なり#3a3a3aになっていたのを統一
全履歴は CHANGELOG.md を参照。