pictkura
ダウンロード

pictkura  /  アプリ仕様

アプリ仕様

できること、できないこと、対応しているファイル形式、動作環境、データの置き場所。導入を検討する際に必要な事実のみを、実際に確認した範囲で記載しています。

バージョン  0.2 最終更新  2026-08-29 ライセンス  MIT

Photo: Wikimedia Commons, CC0

1動作環境

項目内容
WindowsWindows 10 / 11(x64)。WebView2 ランタイムが必要です(Windows 11 および更新済みの Windows 10 には標準で導入されています)
macOSmacOS 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 が開けたものだけ表示します。mp4mov は 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  hifiPhone の既定形式です。画素の復号は OS が行います
bmp  gif  tif  tifftiff は 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 から読むので、日付順の並びとカメラでの絞り込みには出ます
fffHasselblad。確認した H5D-40 のファイルはプレビューを持たないため、枠のみ表示されます
ptx??Pentax。拡張子は認識しますが、実ファイルを入手できず未確認です
Blackmagic CinemaDNGプレビューを持ちません

2026-08-20 に、16 メーカー 28 点の実ファイル(photographyblog.com のサンプルと raw.pixls.us の CC0 一覧)で次の 3 点を確認しました。表示用 JPEG を取り出せること、縦位置が正しい向きで表示されること、撮影日時とカメラ名を読み取れること。上の表で「プレビューを持たない」と記したものはその例外で、取り出せる表示用 JPEG が無いため枠のみの表示になります。

Canon・Nikon・Sony・富士フイルム・Panasonic の RAW を 5 枚続けて開いたところ(cr3 / nef / arw / raf / rw2)。現像は回していません。

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 が開けたものだけmp4mov は H.264 と HEVC(hvc1)の見本で表示、.avi は枠だけ、他は未検証)です。再生時間・寸法・撮影日時は mp4m4vmov3gp の 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実測値

以下はすべて下記の環境で計測した値です。所要時間の大きい項目も同じ表に記載しています。

項目内容
CPUAMD Ryzen 7 5700X(8 コア / 16 スレッド)
メモリ32GB
対象ファイルの所在NVMe SSD(KIOXIA EXCERIA G2)
OSWindows 11 Home
計測方法release ビルド。他の処理を停止した状態で、OS のファイルキャッシュが有効な 2 回目の値を採用

7.1  原寸画像の生成

ビューアで開いた際に、pictkura が原寸の画像を用意するまでの時間です。描画はその後に WebView が行います(24MP の JPEG で 130ms、先読み済みの場合は 0.0〜0.5ms)。

形式時間中身
JPEG6ms再エンコードが不要なため、そのまま送出します
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約 300msWebView が描画できないため、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 のデコーダで復号522msOS が行う処理のため、短縮できません
透過部分を白で塗りつぶす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ヘッダのみ読み取り、画像の復号は行いません

2026-08-17 の計測。2 通りの実装を比較し、左の方式を採用しました。

操作採用した方式採用しなかった方式
範囲選択(151 枚)6.7ms636.8ms
範囲選択(全域)9.2ms26.1 秒
選択の確認(500 枚)8.4ms529.1ms
選択の確認(1.5 万枚)295.5ms26.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。配布するアプリには含まれません)。