商品画像リサイズツール

リサイズツールが拡大しない理由

2000 pxの結果を指定したのに、返ってきたのはそれより小さいファイルでした。これは、サイズを決める処理(planFix)が2000を短辺の上限として読み取り、そのうえで拡大を行わないためです。目標サイズは、渡したピクセルの大きさに固定されます。

Etsy向けの目標値にある2000とは何か

これは短辺に適用される上限であり、出力が必ず到達するサイズではありません。planFixは倍率を `const scale = 2000 / Math.min(sourceWidth, sourceHeight);` として計算するため(fix.ts:62)、写真の向きがどちらであっても、判定される辺は常に渡した二辺のうち短いほうです。

2000はEtsyのルールモジュールから読み込まれるのではなく、fix.tsに手で書かれています(fix.ts:62)。二つの値は一致していますが、一方が他方を読むつくりはコードにありません。したがってこの一致は偶然のものであり、どちらかのファイルが変わったときにはそのように扱う必要があります。

商品画像の枠として記録されている規則は、完全一致ではなく「atLeast」(下限)であり(etsy.ts:161-167)、推奨サイズを下回るファイルは不適合ではなく重大度「warning」(警告)として記録されます(evaluate.ts:187-190)。どの検査が実際に不適合となり、どれが警告にとどまるのかは別の問いであり、このページでは開きません。

元画像のほうが小さいときにplanFixが行うこと

以下はすべて、ピクセルが一つも書き出される前に起きることです。エンコーダーではなく計画の話です。

目標サイズは元画像のサイズに固定されます。
元画像が目標値を下回る場合、planFixは拡大するのではなく、目標サイズを元画像自身の寸法に設定します(fix.ts:99-108)。そのため計画上の結果は、元画像とちょうど同じ大きさになります。
たどり着ける拡大の経路がありません。
どの設定も、処理の順序も、入力ファイルの種類も、その経路を開きません。planFixが作るのは縮小だけなので、同じファイルからは何度試しても同じ答えが返ります。
出力が小さいのは、ツールが元画像の大きさをそのまま返しているということです。
表示される数値は、渡したピクセルの大きさそのものです。それを変えられる入力は、はじめからより多くのピクセルを持つファイルだけです。
計画のどこにもピクセルを作り出す処理はありません。
計画上の目標サイズが元画像を超えることはないため、リサイズツールはピクセルを捨てるだけです。細部を足す工程はなく、ほかのどこかで細部を足せるという記録もここにはありません。

入力ごとに何が出力されるか

出力形式は入力ファイルの種類だけで決まり、書き出し処理が作れるのはちょうど二種類です。ファイル名と行番号は2026-08-18時点のリポジトリから読み取りました。

アップロードするものリサイズツールが書き出すもの決まっている場所
PNGPNGresize.ts:104
JPEG品質0.92のJPEGresize.ts:104、resize.ts:109
WebP品質0.92のJPEGproduct-image-resizer.tsx:250で受け付け、resize.ts:104で書き出し
それ以外ファイル選択で受け付けられませんproduct-image-resizer.tsx:250

より大きな結果が必要な場合

出力サイズを上げられるのは、より大きな元画像だけです。すでに一度縮小された複製ではなく、カメラの元データか、手元に残っているいちばん大きな書き出しに戻ってください。planFixは渡されたものをそのまま読み取り、そこから縮小する計画を立てます(fix.ts:99-108)。

これはブラウザのリサイズツールに限った話です。生成のために端末から送り出される画像には、長辺2048 pxという別の上限があり、こちらも縮小しか行いません。その仕組みは別のページが扱っています。

このページで扱っていないこと

ここまでの内容はすべて2026-08-18時点のリポジトリから読み取ったものであり、対象はこのサイトのモジュールとこのリサイズツールに限られます。

  • マーケットプレイスの方針。ここで引用した記録値は、2026-08-18時点でルールモジュールが保持していた値です。いずれのマーケットプレイスについても、現在公開されている要件を述べたものではありません。
  • マーケットプレイス自身の検査ツールの挙動。説明しているのは、このサイトの検査とこのリサイズツールの挙動だけです。
  • 寸法が検索結果での順位、表示回数、購入に影響するかどうか。ここに記録された内容は、どちらの方向についてもそのような主張を支えません。
  • アップロードしたファイルがどこへ送られ、どこに保管されるか。このページの根拠は、planFixが計算する内容と書き出し処理が作るものであって、通信や保管ではありません。したがってそのどちらについても述べていません。
  • 生成のときに端末から何が送り出されるか。その経路には固有の上限があり、専用のページがあります。
  • モバイルアプリが画像に対して行うこと。このページが扱うのはブラウザのリサイズツールだけです。

よくある質問

2000 pxの結果を指定したのに、小さいファイルが返ってきました。ツールが壊れているのですか。

いいえ。2000は短辺に対する上限として適用され(fix.ts:62)、元画像がそれを下回る場合、計画は拡大するのではなく元画像自身のサイズに固定されます(fix.ts:99-108)。出力が小さいということは、元画像が小さかったということです。

2000はどちらの辺に対して測られますか。

短いほうです。倍率は2000を `Math.min(sourceWidth, sourceHeight)` で割った値なので(fix.ts:62)、横長の写真は高さで、縦長の写真は幅で判断されます。

WebPがJPEGになって返ってきたのはなぜですか。

ファイル選択はjpeg、png、webpを受け付けますが(product-image-resizer.tsx:250)、書き出し処理は入力ファイルの種類からちょうど二つの出力形式のどちらかを選びます。PNGを入れればPNG、それ以外は品質0.92のJPEGです(resize.ts:104、resize.ts:109)。

リサイズツールに通すと画像は良くなりますか。

減るだけです。planFixは拡大を行わないため(fix.ts:99-108)、この処理はピクセルを取り除くだけで、足すことはありません。それを超える品質の主張を支える記録もここにはありません。

短辺を2000 pxにするにはどうすればよいですか。

短辺がすでに2000 px以上あるファイルをリサイズツールに渡してください。そうすれば倍率がその辺を上限まで下げます(fix.ts:62)。元画像が小さい場合、リサイズツールの内部で結果が変わることはありません。