iOS・Android・Web用アイコンサイズを生成
アプリアイコンサイズ生成ツールは、元アイコンの寸法からiOS、Android、Web向けの実用的な書き出し一覧を作成します。ピクセル単位の幅と高さを入力して対象プラットフォームを選ぶと、必要な正方形サイズと拡大の要否が返されます。元画像が正方形かどうか、利用可能な寸法を超える出力がいくつあるかも確認できます。画像のアップロードやネットワーク通信を行わず、書き出し前の確認や決定的なJSONレスポンスを使う自動処理にご利用いただけます。
無料で実行
マスターアイコンの実寸を入力してください
元ファイルの幅と高さをピクセル単位で入力してください。CSS上の表示サイズ、印刷時の物理寸法、周囲のフレーム寸法は使用しません。制作工程では長方形の画像が誤って渡される場合があるため、このツールは長方形の元画像も受け付けます。結果に正方形かどうかが示されるので、有用なサイズ分析を続けながら形状の問題を発見できます。各プラットフォームが求めるアイコンはすべて正方形です。そのため、縦横が異なる元画像は最終的な書き出し前にトリミング、余白追加、またはデザインの修正が必要です。拡大の判定には両方の辺を使います。たとえば1024×600の画像から1024ピクセルのアイコンを作る場合、短辺に十分な画素がないため拡大が必要です。寸法には公開された上限内の正の整数を指定してください。この機能が調べるのは寸法だけであり、画像の解析、サイズ変更、切り抜き、鮮明化、保存は行いません。
公開先に合うプラットフォームを選択してください
iOS、Android、Webのいずれかを選ぶと、対象で一般的に必要となるラスターサイズが返されます。iOSでは、スマートフォン、タブレット、設定、通知、Spotlight、App Storeで使うピクセル出力をまとめ、異なるポイント数と倍率の組み合わせが同じ寸法になる場合は重複を除いています。Androidでは、mdpiからxxxhdpiまでのランチャーアイコンと、ストア用の512ピクセル画像を返します。Webでは、小型ブラウザーアイコン、従来の48ピクセルアイコン、180ピクセルのApple Touchアイコン、インストール可能なWebアプリ用の192および512ピクセルのマニフェストアイコンを扱います。各項目には同じ幅と高さ、および拡大の要否が含まれます。未対応のプラットフォーム名は既定値に置き換えず、明示的なエラーになります。これにより、ビルドスクリプトの入力ミスで誤った一式が生成されることを防げます。
書き出し前に拡大の判定をご確認ください
元画像の幅または高さが要求される正方形サイズより小さい場合、その出力は拡大が必要と判定されます。小さなラスター画像を引き伸ばしても失われた細部は戻らず、幅が十分でも高さの不足を補えないため、制作に適した安全側の判定です。レスポンスには全体の判定と該当数も含まれます。自動処理では個々の項目を走査せずに、ビルドの停止、警告の表示、より大きなマスター画像の依頼ができます。拡大不要という結果は画素数が足りていることを示しますが、見た目の品質までは保証しません。輪郭の鮮明さ、透明部分、セーフエリア、角の処理、カラープロファイル、各プラットフォームのマスクもご確認ください。縮小済みの画像を繰り返し変換せず、最良のマスターから各サイズを書き出すことをおすすめします。計算は決定的で通信を行いません。ブラウザーで利用するか、検証や公開工程から$0.002でAPIを呼び出せます。
活用例
デザイン納品物を検証
受け取ったマスター画像が正方形で、対象の全アイコンに十分な大きさか確認できます。
書き出し工程を計画
画像変換ツールを実行する前に、決定的な出力寸法一覧を生成できます。
リリースビルドを保護
必要なアイコンに拡大が発生する場合、継続的インテグレーションで停止または警告できます。
よくある質問
アイコン自体のサイズも変更されますか?
いいえ。必要寸法と拡大の要否だけを計算し、画像の画素を受信または変換することはありません。
拡大の要否はどのように決まりますか?
元画像の幅または高さが対象の正方形サイズより小さい場合に、拡大が必要と判定されます。
長方形の元画像も使用できますか?
はい。正方形かどうかが結果に示され、短い辺を基準に各出力が判定されます。
対応するプラットフォームは何ですか?
指定できる値はios、android、webです。それ以外は入力エラーになります。
APIリクエストの料金はいくらですか?
APIリクエストは1回につき$0.002です。ブラウザー版は画像を送信せずローカルで動作します。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/image/icon-set-sizes \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"width":1024,"height":1024,"platform":"ios"}'const res = await fetch("https://api.kit.forhosting.com/image/icon-set-sizes", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"width": 1024,
"height": 1024,
"platform": "ios"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/icon-set-sizes",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"width": 1024,
"height": 1024,
"platform": "ios"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/icon-set-sizes", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"width":1024,"height":1024,"platform":"ios"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"width":1024,"height":1024,"platform":"ios"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/icon-set-sizes", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"width": 1024,
"height": 1024,
"platform": "ios"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.icon_set_sizes",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_dimension | 100000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |