1動作環境
| 項目 | 内容 |
|---|---|
| Windows | Windows 10 / 11(x64)。WebView2 ランタイムが必要です(Windows 11 および更新済みの Windows 10 には標準で導入されています) |
| macOS | macOS 11 以降(Apple Silicon)。Intel 版はありません |
| Linux | ビルドを配布していません(Tauri v2 のため、技術的には対象です) |
| 追加の部品 | HEIC / HEVC の復号には OS の拡張機能を使用します。Windows では「HEIF 画像拡張機能」(無償)と「HEVC ビデオ拡張機能」(有償)が必要です |
| 言語 | 日本語 / 英語。OS の言語設定に従います。設定画面で変更できます |
2できること
USB / SD カードからの取り込み
撮影日ごとのフォルダに振り分けます。9 種類の定型、または独自に指定した構成を選択できます
フォルダをそのまま登録
写真を独自の保管領域へ移動しません。元の場所のまま一覧に表示します
撮影日ごとの一覧とカレンダー
年のスクラバーにより、数万枚の中を一度に移動できます
検索・絞り込み
ファイル名・フォルダ・カメラ・撮影年月日・種類(画像 / RAW / 動画)・★・⚑。条件はすべて AND で結合します
ビューアと選別
⚑ で選別、✕ で除外、★ でお気に入りを付けます。撮影情報(絞り・シャッター速度・ISO・GPS)も表示します
まとめて操作
選択した写真への ★ の付与、フォルダへのコピー・移動、ごみ箱への移動
スライドショーと動画再生
アプリ内で再生できないコンテナは、既定のプレイヤーで開きます
自動再生への登録(Windows)
カード挿入時の候補に表示されます。自動では起動しません
Ctrl+K でカメラを選び、続けて年を足したところ。条件は AND で積まれ、3 万件が 1,200 件まで減ります。3できないこと
意図的に実装していないものと、未実装のものを区別して記載します。
| できないこと | 理由・現状 |
|---|---|
| RAW 現像 | 実装していません。カメラが埋め込んだ表示用 JPEG を使用します |
| 写真の編集・書き出し | 回転・切り抜きを含め、実装していません。閲覧に限定した設計です |
| AI による選別・顔認識 | 実装していません。選別は利用者が行う設計です |
| タグ・キーワード付け | 実装していません。印は ★ と ⚑ の 2 種類のみです |
| 並び順の変更 | 撮影日の新しい順に固定しており、変更する手段はありません |
| 取り込みの中断 | 開始後は完了まで中断できません |
| 動画のサムネイル(macOS・一部のコンテナ) | macOS の AVFoundation が開けたものだけ表示します。mp4 と mov は H.264 と HEVC(hvc1)の見本で表示、.avi は枠だけになることを確認済みで、他のコンテナは未検証です。Windows はシェルから借りますが、そちらにも限界はあります——.m2ts は未確認で、OS にコーデックが無いコンテナは枠だけになります |
長さ・寸法(macOS・mp4 m4v mov 3gp 以外) | この 4 つはコンテナのヘッダから読み取ります。他のコンテナは Windows のシェルに依存するため、macOS では長さも寸法も表示されず、撮影日時はファイル名か更新日時に落ちます |
.m2ts / .avi のアプリ内再生 | WebView が該当するコンテナに対応していません。一覧には表示されます |
| どこにも寸法を申告していないRAWの寸法 | 寸法は、ファイル自身の申告か、Panasonic系のRAW(rw2 raw rwl)に入っているセンサーの縁か、埋め込みプレビューから決まります。そのどれも無いRAW(確かめたものでは Blackmagic の CinemaDNG)は寸法が出ません。例外はWindowsでクラウドにしか実体が無いファイルで、そちらは実体を落とさずにシェルが寸法を返します |
| 索引の作り直し(画面から) | 設定フォルダの pictkura.db を削除すると再作成します |
| 右から左に書く言語の配置 | 未対応です |
4対応しているファイル形式
一覧・拡大とも可 制限あり — 非対応
4.1 写真
| 拡張子 | 一覧 | 拡大 | 備考 |
|---|---|---|---|
| jpg jpeg | 縮小しながら復号するため、大きな写真でも負荷が増えません | ||
| png webp | |||
| avif | デコーダ(rav1d)を同梱しており、OS の拡張機能は不要です | ||
| heic heif hif | iPhone の既定形式です。画素の復号は OS が行います | ||
| bmp gif tif tiff | tiff は WebView が描画できないため、JPEG に変換して表示します | ||
| svg | 原本から描画するため、拡大しても劣化しません |
4.2 RAW — 現像はしません
| 拡張子 | 一覧 | 拡大 | 備考 |
|---|---|---|---|
| cr2 cr3 nef nrw arw raf orf rw2 pef srw dng rwl 3fr x3f kdc | カメラが埋め込んだ表示用 JPEG を、ほぼ原寸で取り出します。Apple ProRAW(DNG)を含みます | ||
| crw srf sr2 mrw erf dcr iiq mos | 確認したファイルでは 160×120〜640×480 の小さなプレビューのみで、全画面表示では解像感が低下します | ||
| raw | 確かめた2枚(Panasonic DMC-LX1・DMC-FZ8)はプレビューを持たず、枠のみの表示になります。寸法はセンサーの縁から、撮影日時とカメラ名は EXIF から読むので、日付順の並びとカメラでの絞り込みには出ます | ||
| fff | Hasselblad。確認した H5D-40 のファイルはプレビューを持たないため、枠のみ表示されます | ||
| ptx | ? | ? | Pentax。拡張子は認識しますが、実ファイルを入手できず未確認です |
| Blackmagic CinemaDNG | プレビューを持ちません |
2026-08-20 に、16 メーカー 28 点の実ファイル(photographyblog.com のサンプルと raw.pixls.us の CC0 一覧)で次の 3 点を確認しました。表示用 JPEG を取り出せること、縦位置が正しい向きで表示されること、撮影日時とカメラ名を読み取れること。上の表で「プレビューを持たない」と記したものはその例外で、取り出せる表示用 JPEG が無いため枠のみの表示になります。
4.3 動画
| 拡張子 | 一覧 | アプリ内再生 | 備考 |
|---|---|---|---|
| mp4 m4v mov webm | コーデックは OS のものを使用します(HEVC は上記の拡張機能が必要です) | ||
| avi mts m2ts mkv 3gp wmv mpg mpeg | — | 再生は既定のプレイヤーで行います |
一覧に並ぶこと自体はどのOSでも同じで、変わるのは絵が付くかどうかです。上の表の「一覧」欄は Windows で確かめたぶんで、しかもその絵は OS が出せると答えたぶんです。動画のサムネイルは OS から取得するため、そのOSがコンテナを開ける範囲までが上限になります。Windows はシェル経由(.avi と HEVC の .mov は確認済み、.m2ts は未確認、OS にコーデックが無いものは枠だけ)、macOS は AVFoundation が開けたものだけ(mp4・mov は H.264 と HEVC(hvc1)の見本で表示、.avi は枠だけ、他は未検証)です。再生時間・寸法・撮影日時は mp4・m4v・mov・3gp の 4 つをコンテナのヘッダから読み取り(画素の復号は行いません)、他のコンテナは Windows のシェルに依存します。
5通信とプライバシー
| 項目 | 内容 |
|---|---|
| 自分から出す通信 | 起動時の更新確認のみです(自動確認は 1 日 1 回まで)。送信するのは pictkura のバージョン番号のみです |
| 送らないもの | 写真・ファイル名・フォルダの場所・利用状況。解析および計測の仕組みは実装していません |
| 通信を止める | 設定 →「pictkura について」→「起動時に更新を確認する」を無効にすると、通信は発生しません |
| クラウドのファイル | クラウドにのみ存在するファイルを自動では取得しません。実際に表示した時点で取得します |
| 削除 | 必ずごみ箱を経由します。直接の削除は行いません |
プライバシーポリシーにも同じ内容を文書として掲載しています。
6データの置き場所
| 中身 | 場所 |
|---|---|
| 設定(Windows) | %APPDATA%\dev.harusame.pictkura\pictkura.toml |
| 設定(macOS) | ~/Library/Application Support/dev.harusame.pictkura/ |
| 索引 | pictkura.db(同じフォルダ) |
| サムネイル | thumbs\(同じフォルダ) |
| 写真そのもの | 変更しません。登録したフォルダに保存されたままです |
設定ファイルは直接編集できます。画面に表示していない項目(走査から除外するフォルダのパターン、写真と併せて移動するファイルの拡張子など)は、マニュアルに記載しています。
7実測値
以下はすべて下記の環境で計測した値です。所要時間の大きい項目も同じ表に記載しています。
| 項目 | 内容 |
|---|---|
| CPU | AMD Ryzen 7 5700X(8 コア / 16 スレッド) |
| メモリ | 32GB |
| 対象ファイルの所在 | NVMe SSD(KIOXIA EXCERIA G2) |
| OS | Windows 11 Home |
| 計測方法 | release ビルド。他の処理を停止した状態で、OS のファイルキャッシュが有効な 2 回目の値を採用 |
7.1 原寸画像の生成
ビューアで開いた際に、pictkura が原寸の画像を用意するまでの時間です。描画はその後に WebView が行います(24MP の JPEG で 130ms、先読み済みの場合は 0.0〜0.5ms)。
| 形式 | 時間 | 中身 |
|---|---|---|
| JPEG | 6ms | 再エンコードが不要なため、そのまま送出します |
| RAW・横位置(Canon EOS R8・CR3・24MP) | 17.1ms | 現像は行いません。カメラが埋め込んだ表示用 JPEG を取り出します |
| RAW・縦位置(Nikon Df・NEF・16MP) | 218.5ms | プレビューを回転させたうえで再エンコードするため、横位置の約 13 倍を要します。画素数は横位置の例より少なく、差の大半は回転と再エンコードによるものです |
| AVIF(4032×3024) | 40〜53ms | 同梱のデコーダ(rav1d)で復号します。縮小と色変換を統合して +1〜2ms |
| TIFF | 約 300ms | WebView が描画できないため、JPEG に変換して送出します |
| HEIC(iPhone・24.5MP) | 0.6〜1 秒 | 本項で最も所要時間が大きい形式です。内訳は下表のとおりです |
RAW は、横位置に Canon EOS R8 の実ファイル、縦位置に raw.pixls.us の CC0 サンプル(Nikon Df、4928×3280 のプレビューを 3280×4928 へ回転)を使用しました。縦位置は 2 点で 216.3ms / 220.7ms です。
HEIC 1 枚あたりの内訳(20 枚の平均):
| 段 | 時間 | 中身 |
|---|---|---|
| Windows のデコーダで復号 | 522ms | OS が行う処理のため、短縮できません |
| 透過部分を白で塗りつぶす | 10ms | |
| JPEG へ再エンコード | 79ms | 純 Rust の実装では 496ms を要したため、mozjpeg に変更しました |
再エンコードを 496ms から 79ms に短縮しても、復号が支配的なため 1 枚あたり 1 秒前後のままです。このためビューアでは、先読みを隣接する 1 枚に限定し、原寸が到着するまで一覧のサムネイルを下層に表示します。
7.2 ライブラリの構築
| 計測項目 | 時間 | 中身 |
|---|---|---|
| クラウドにのみ存在する写真 3,166 件の索引 | 20 秒 | 通信は発生しません。撮影日時と寸法は Windows が保持する情報を使用します |
| JPEG からのサムネイル生成(19MP・40 枚の平均) | 92ms → 40ms | 原寸での復号をやめ、1/8 に間引いて復号する方式へ変更しました |
| RAW からのプレビュー抽出 | 100〜350ms | 形式によっては、ファイル全体の読み込みが必要です |
| HEIF の寸法の読み取り | 0.2ms | ヘッダのみ読み取り、画像の復号は行いません |
7.3 検索(3 万件・うち一致 1.5 万件)
2026-08-17 の計測。2 通りの実装を比較し、左の方式を採用しました。
| 操作 | 採用した方式 | 採用しなかった方式 |
|---|---|---|
| 範囲選択(151 枚) | 6.7ms | 636.8ms |
| 範囲選択(全域) | 9.2ms | 26.1 秒 |
| 選択の確認(500 枚) | 8.4ms | 529.1ms |
| 選択の確認(1.5 万枚) | 295.5ms | 26.7 秒 |
実行計画のうえでは右の方式が単純ですが、実測では桁違いに遅いため左を採用しました。再度比較できるよう、右の方式もコードに残しています。
7.4 一括操作
| やったこと | 時間 | 中身 |
|---|---|---|
| 500 枚のごみ箱への移動(1 枚 2MB) | 約 4.9 秒 | Windows のごみ箱 API の呼び出しに、1 件あたり中央値 20ms、最大 215ms を要します |
| 同じ 500 枚を分割した場合(1 枚 1MB) | 分割なし 3,675ms 5 分割 4,848ms 10 分割 5,406ms | 分割するほど所要時間は増えますが、実行直後から進捗を表示できます |
2026-08-19 の計測。事前の見積もりは 2.3 秒でしたが、実機では 4.9 秒を要しました。待機時間としては長いため、分割して進捗を表示しています。分割による増加は全体で約 1 秒であり、最初の分割のみ小さくし、以降を倍増させることで抑えています。25 枚以下は分割しません。
いずれも開発中に計測した値であり、環境・対象ファイル・バージョンにより変動します。計測に使用したツールはリポジトリに含まれています(cargo run --release --bin bench。配布するアプリには含まれません)。