中間リングの撮影倍率計算ツール
中間リングを装着すると、レンズとセンサーの間隔が広がり、より近くにピントを合わせて小さな被写体を大きく写せます。この計算ツールは、リングの長さとレンズの焦点距離から追加される撮影倍率を推定します。レンズ本来の最短撮影距離での倍率も入力できるため、機材を準備する前に、組み合わせたときのおおよその撮影倍率と再現比を確認できます。
無料で実行
焦点距離と延長量の合計を入力します
レンズに表示された焦点距離をミリメートル単位で入力し、重ねて使用する中間リングの長さをすべて合計してください。たとえば 12 mm と 20 mm のリングを組み合わせる場合、延長量は 32 mm です。ズームレンズでは、鏡筒に記載された両端の値ではなく、実際の撮影時に選んだ焦点距離を使用します。この計算では延長量を焦点距離で割るため、両方をミリメートルでそろえる必要があります。仕様表にレンズ本来の最大撮影倍率がある場合は、単位のない数値として入力できます。0.25 は実物の 4 分の 1 の大きさで写ることを示し、通常は 1:4 と表します。無限遠に合わせた状態からリングだけが加える理想的な倍率を知りたい場合は、ゼロのままにしてください。結果には追加倍率、推定合計倍率、再現比が表示され、同じリングでも短い焦点距離ほど効果が大きい理由を比較できます。
推定値と計算式を理解します
計算には標準的な薄レンズ近似を使用します。追加倍率は、延長量を焦点距離で割った値です。したがって、50 mm レンズに 25 mm のリングを付けると 0.5× が加わります。レンズ本来の倍率を入力した場合は、その値を加えて合計倍率を推定します。この関係は、無限遠付近にピントを合わせたレンズを薄レンズとして扱う場合に最も素直に当てはまります。実際の写真用レンズは複数の光学群で構成され、インナーフォーカスによって近距離での実効焦点距離が変化することがあります。また、ピント位置が変わると、光学的に有効な延長量がリングの表示値と完全には一致しない場合があります。そのため、結果は実験室レベルの測定値ではなく、組み合わせを選ぶための目安としてご利用ください。正確な倍率が必要な場合は、最終設定で定規や校正済みチャートを撮影し、写った幅とセンサー幅を比較してください。
実用的な接写構成を計画します
延長量を増やすほど倍率は高くなりますが、撮影時の扱いも変わります。無限遠にはピントが合わなくなり、ワーキングディスタンスが短くなる場合があります。倍率が上がるにつれて被写体面での実効的な露光量も低下し得ます。コントラストの低い被写体ではオートフォーカスが遅くなったり迷ったりするため、マニュアルフォーカスにしてカメラを静かに前後させる方法が安定します。まず必要な構図を得られる最も短いリングから試し、照明を置く空間と被写体が静止できる条件を確認してください。長い焦点距離は一般に作業距離を確保しやすい一方、同じリングによる倍率増加は小さくなります。短い焦点距離は倍率が大きく増えますが、レンズ前面が被写体に近づきすぎることがあります。この推定値には、被写界深度、露出補正、画質、ワーキングディスタンスは含まれません。これらは絞り、レンズ設計、ピント位置、センサー形式、実際の組み合わせで変わります。
活用例
リングの長さを選ぶ
同じレンズで複数の中間リングを比較し、必要な構図を得られそうな最短の組み合わせを選べます。
マクロ撮影用レンズを比べる
同じリングを異なる焦点距離で使った場合の倍率を推定し、持参または装着するレンズを検討できます。
合計再現比を見積もる
公表されているレンズ本来の倍率にリングの寄与分を加え、実用的な合計倍率の目安を得られます。
よくある質問
API で利用する場合の料金はいくらですか?
API の各リクエストは $0.002 です。ブラウザー版は端末内で無料で実行されます。
どのような計算式を使用しますか?
延長量を焦点距離で割り、追加される倍率を推定します。両方の長さはミリメートルで入力します。
0.5× の倍率は何を意味しますか?
センサー上の像が被写体の実際の長さの半分になることを示し、再現比では 1:2 と表します。
複数の中間リングを重ねられますか?
はい。表示されている長さを合計し、その値を extension_length_mm として入力してください。
実測倍率と結果が異なるのはなぜですか?
インナーフォーカス、実効焦点距離の変化、光学設計、ピント位置により、実際のレンズは薄レンズ近似と異なるためです。
中間リングを付けても無限遠に合焦しますか?
いいえ。合焦範囲が近距離側へ移るため、リングを装着している間は通常、無限遠にピントを合わせられません。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/hobby/photo-extension-tube-magnification \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"focal_length_mm":50,"extension_length_mm":25}'const res = await fetch("https://api.kit.forhosting.com/hobby/photo-extension-tube-magnification", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"focal_length_mm": 50,
"extension_length_mm": 25
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/hobby/photo-extension-tube-magnification",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"focal_length_mm": 50,
"extension_length_mm": 25
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/hobby/photo-extension-tube-magnification", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"focal_length_mm":50,"extension_length_mm":25}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"focal_length_mm":50,"extension_length_mm":25}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/hobby/photo-extension-tube-magnification", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"focal_length_mm": 50,
"extension_length_mm": 25
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "hobby.photo_extension_tube_magnification",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |