画像サイズ変更:幅と高さを計算
画像サイズ計算ツールは、リサイズ後に必要となるピクセル寸法を求めます。元画像の幅と高さを入力し、目標の幅、目標の高さ、またはその両方を指定してください。目標寸法が片方だけの場合は、元の縦横比からもう一方を算出し、最も近い整数ピクセルへ丸めます。両方を指定した場合は、その値をそのまま返します。結果は常に一定で、画像処理パイプライン、レスポンシブレイアウト、アップロード検証、コマンド生成に利用できます。画像自体のアップロードやデコードは行いません。
無料で実行
片方の目標値から比率を保ったサイズを計算します
最初に元画像の幅と高さをピクセル単位で入力します。次にtarget_widthまたはtarget_heightを指定してください。選択した目標寸法を対応する元寸法で割って倍率を求め、その倍率をもう一方の辺に適用し、計算結果を最も近い整数ピクセルへ丸めます。たとえば、1920×1080の画像で目標幅を1280にすると、結果は1280×720になります。この方法では、整数ピクセルで表現できる範囲内で元の縦横比が保たれるため、円は円のままで、被写体が不自然に引き伸ばされません。ブログ本文の固定幅や、行の高さが決まったギャラリーなど、一方の軸だけを固定して他方を自動調整するレイアウトに特に適しています。本ツールが行うのは寸法計算だけです。画像のアップロード、デコード、再サンプリング、切り抜き、圧縮、変更は行いません。返された幅と高さは、画像ライブラリ、コマンドライン処理、コンテンツパイプライン、ブラウザーの表示規則などへ渡してご利用いただけます。
正確な枠が必要な場合は両方を指定します
出力先で正確なピクセル枠が必要な場合は、target_widthとtarget_heightの両方を指定してください。このモードでは、要求された2つの値をそのまま返します。明示された寸法と異なる結果になるため、元の縦横比を保つ目的で値を自動調整することはありません。この違いは、広告枠、マーケットプレイスの商品画像、印刷テンプレート、表示装置、固定キャンバスしか受け付けない旧式システムで重要です。目標の比率が元画像と異なる場合、その後の画像処理では、引き伸ばす、枠を埋めるように切り抜く、余白を設けて収める、という方法から選ぶ必要があります。本機能は、その見た目に関する判断を意図的に行いません。後続処理が明示的なリサイズ方針を適用できるように、分かりやすく予測可能な寸法を返します。写真、ロゴ、図表、イラスト、文字を引き伸ばす前に比率を比較し、目立つ変形を防いでください。
ピクセル、丸め、入力検証を確実に扱います
ラスター画像の大きさは完全なピクセルで表すため、4つの寸法には正の整数を使用します。元の幅と高さは必須であり、さらに目標寸法を少なくとも一方指定する必要があります。0、負数、小数、数値以外の値、公開上限である10億ピクセルを超える寸法は、自動変換せずエラーとして扱います。目標値が一方だけの場合、算出される辺は標準的な方法で最も近い整数へ丸められ、1ピクセル未満にはなりません。非常に小さな画像では、端数ピクセルが存在しないため、丸め後の比率が数学上の比率とわずかに異なることがあります。再現可能な自動処理には、CSS上の表示寸法や推測値ではなく、画像メタデータに記録された元のピクセル寸法をご使用ください。同じ入力からは必ず同じ出力が得られます。ネットワーク接続、乱数、現在時刻、画像検査、隠れた状態には依存しません。そのため、結果のキャッシュ、golden fixtureでのテスト、APIクライアントやブラウザー処理での再利用が可能です。
活用例
レスポンシブ画像を準備します
画像バリエーションを生成する前に、固定された各表示幅に対応する高さを計算します。
正確な納品サイズを検証します
広告枠、商品掲載、画面表示で要求される出力枠を確定します。
リサイズコマンドを作成します
元画像のメタデータと指定された一辺から、画像処理用の整数寸法を作成します。
よくある質問
目標の幅だけを指定するとどうなりますか?
元の縦横比から高さを計算し、最も近い整数ピクセルへ丸めます。
目標の高さだけを指定するとどうなりますか?
元の縦横比から幅を計算し、最も近い整数ピクセルへ丸めます。
目標の幅と高さを両方指定できますか?
はい。元画像と比率が異なる場合でも、指定された2つの値をそのまま返します。
画像のアップロードやリサイズも行いますか?
いいえ。寸法計算だけを行い、画像データの受信、デコード、保存、変更は一切行いません。
APIリクエストの料金はいくらですか?
APIリクエスト1回の料金は$0.002です。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/image/resize-to-dimensions \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"width":1920,"height":1080,"target_width":1280}'const res = await fetch("https://api.kit.forhosting.com/image/resize-to-dimensions", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"width": 1920,
"height": 1080,
"target_width": 1280
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/resize-to-dimensions",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"width": 1920,
"height": 1080,
"target_width": 1280
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/resize-to-dimensions", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"width":1920,"height":1080,"target_width":1280}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"width":1920,"height":1080,"target_width":1280}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/resize-to-dimensions", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"width": 1920,
"height": 1080,
"target_width": 1280
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.resize_to_dimensions",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |