RAW写真ファイルサイズ計算
このRAW写真ファイル容量計算ツールは、カメラのメガピクセル数と1ピクセル当たりの保存ビット深度から、非圧縮センサー画像1枚に必要な容量を推定します。結果は概算のbyte数、10進MB、2進MiBで示されるため、保存領域の計画、転送量の見積もり、撮影環境の比較に利用できます。メーカー独自のRAW形式を断定するものではなく、圧縮、メタデータ、パディング、プレビュー、固有の格納方式によって実ファイル容量は変わります。
無料で実行
センサー解像度と保存ビット深度をご入力ください
まず、カメラ本体に表示された丸め済みの公称値ではなく、撮影に使われる有効メガピクセル数をご入力ください。24メガピクセルは24,000,000センサーピクセルとして扱われます。次に、各ピクセルサンプルへ割り当てる非圧縮のビット数をご指定ください。一般的な値は12、14、16ビットですが、有限の正数であれば入力できるため、科学用や産業用の特殊なセンサーにも対応できます。このビット深度は、完成したRGB画像のチャンネル当たりビット数とは異なります。一般的なBayer配列センサーはデモザイク処理前に各受光素子で1つの色付きサンプルを記録するため、本計算ではセンサーピクセルごとに1サンプルと仮定します。両項目は必須で、正数でなければなりません。24.2メガピクセルのような小数も指定できます。
計算方法と表示単位をご確認ください
メガピクセル数に1,000,000を掛けてピクセル数を求め、その値にビット深度を掛け、さらに8で割ってbitをbyteへ変換します。16ビットサンプルは非圧縮で2byte、隙間なく格納された12ビットサンプルは平均1.5byteです。出力には推定ピクセル数とbyte数も含まれるため、計算を直接確認できます。また、1 MBを1,000,000 byteとする10進メガバイトと、1 MiBを1,048,576 byteとする2進メビバイトを併記します。ストレージメーカーは10進単位を、OSや技術ツールは2進単位を使う場合があり、同じbyte数でも表示値は異なります。丸めは読みやすく安定したJSON出力のためだけに行い、圧縮率、安全余裕、サムネイル、メタデータは加算しません。
実際の保存計画へ見積もりをご活用ください
結果を非圧縮画像1枚の基準値として扱い、計画中の実際の撮影工程に合わせて調整してください。1枚当たりのbyte数へ予定枚数を掛ければ、撮影、連写、メモリーカード、アーカイブ、バックアップの必要容量を見積もれます。ファイルシステム、カタログ、サイドカーファイル、プレビュー、編集データ、空き容量の余裕も確保してください。実際のRAWは圧縮により小さくなる一方、16ビット単位へのパディング、大きなプレビュー、豊富なメタデータ、公称画像領域外のピクセルによって大きくなる場合があります。複数回撮影モードや特殊センサーでは、出力ピクセルごとに複数サンプルを保存することもあります。より正確に計画するには、同じカメラ、RAWモード、クロップ設定、ファームウェアで撮影した複数ファイルと比較してください。
活用例
メモリーカード容量の選定
イベント、野生動物撮影、スタジオ撮影に必要なカード枚数を決める前に、1枚当たりの非圧縮容量を見積もれます。
アーカイブとバックアップの設計
カメラ仕様を統一した基準値へ変換し、主記憶、ローカルバックアップ、遠隔コピーの容量設計に利用できます。
カメラごとのデータ量比較
独自圧縮方式に依存せず、解像度とビット深度が異なるセンサーの概算データ量を比較できます。
よくある質問
計算料金はいくらですか?
APIは1回$0.002です。ブラウザー版では写真を送信せず、同じ決定的な計算を実行できます。
実際のRAWが推定値より小さいのはなぜですか?
多くのカメラが可逆または非可逆RAW圧縮を使うためです。本ツールは非圧縮の基準値を求め、機種固有の圧縮率は仮定しません。
実際のRAWが大きくなる場合があるのはなぜですか?
メタデータ、JPEGプレビュー、行パディング、マスク済みピクセル、幅の広い格納単位が容量を追加する場合があります。
14ビットRAWは常に各サンプルを14ビットで格納しますか?
いいえ。隙間なく詰める形式と、より広い単位へパディングする形式があります。本計算は隙間のない格納を仮定します。
MBとMiBの違いは何ですか?
10進の1 MBは1,000,000 byte、2進の1 MiBは1,048,576 byteです。同じファイルでも数値が異なります。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/image/raw-file-estimate-size \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"megapixels":24,"bit_depth":14}'const res = await fetch("https://api.kit.forhosting.com/image/raw-file-estimate-size", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"megapixels": 24,
"bit_depth": 14
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/raw-file-estimate-size",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"megapixels": 24,
"bit_depth": 14
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/raw-file-estimate-size", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"megapixels":24,"bit_depth":14}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"megapixels":24,"bit_depth":14}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/raw-file-estimate-size", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"megapixels": 24,
"bit_depth": 14
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.raw_file_estimate_size",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_mb | 15 |
max_megapixels | 12 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |