本文へスキップ
NextCode.ltd
開発事例

胸ロゴが、お腹に出た。Tシャツデザイナーで「胸の位置」に10回コミットした夜

胸ロゴが、お腹に出た。Tシャツデザイナーで「胸の位置」に10回コミットした夜

数字を直しても直しても当たらなかったのは、相手が何を基準に大きさと位置を決めるのか、分かっていなかったからでした。

胸ロゴを作るアプリなのに、試し出品のロゴは、点のように小さかったり、お腹の高さに出たりしました。

Tシャツデザイナーの画面

Tシャツデザイナーは、文字やテイストを選ぶと AI がプリント用の絵を作って、SUZURI に自動で出品するアプリです。絵を作るところは意外とすんなり動きました。苦しんだのは、その絵を「Tシャツのどこに、どの大きさで載せるか」です。

記録に残っているのは、2026-06-01 の 23:15 から、翌朝 05:11 までの約6時間。プリントの配置を決める1つのファイルに、配置と大きさの調整だけで10回コミットしています。

1最初の作戦は「左胸ワンポイント」だった

胸ロゴといえば、左胸の小さなワンポイントです。最初のコードは、1200×1600 のキャンバスの右寄りに、幅の26%の大きさでロゴを置く作りでした(着ている人から見て左胸にあたる位置)。

これが、4分後(23:19)に最初の修正になります。SUZURI は、プリントを必ず横方向の真ん中に置きます。SUZURI の商品情報を見ても、印刷できる場所に左胸が入っていません。左右にずらす作戦は、そもそも成り立たなかった。「中央の、高い位置のワンポイント」に方針を変えました。

2次は「小さすぎる」。数字を3回いじって、当たらなかった

出してみると、ロゴが点のように小さい。そこで幅の割合を 26% から 40%、さらに 96% まで上げました。それでも小さい。

このときのコードのコメントには、縦長のキャンバスは幅が圧縮されるから割合を上げる、と書いてあります。理屈を付けて、数字だけを動かしていた。原因に当たっていないので、直るはずがありません。

原因に当たるまで、23:15 から約1時間37分、3回かかりました。転機は 00:52 です。SUZURI は、絵を置く枠の割合ではなく、渡した画像の実際のピクセル数から印刷の大きさを決めている。つまり、ロゴを枠に収めるために縮めていたこと自体が、小さくなる原因でした。縮めるのをやめて、透過のまま拡大するようにしたら、ようやくロゴが胸の大きさになります。

3今度は「お腹」に出た。余白を足して持ち上げる

大きさが合うと、次は位置です。SUZURI は画像を縦にも真ん中に置くので、ロゴ1つだけの画像だとTシャツの胸ではなくお腹の高さに来る。ロゴの下に透明な余白を足して、中身を上へ押し上げることにしました。

余白の量を決めるまでが、また3回です。

2026-06-02 の未明、胸ロゴの調整で起きたこと(コミットの記録から)

時刻変えた値起きたこと
01:02余白=ロゴの高さの1.8倍・胸は2,500pxお腹から胸へ上がった
01:06胸を3,800pxへ・余白1.6倍大きくしたら、襟で絵の上端が切れた
01:12余白を1.0倍へ切れが止まった
03:50余白をやめ、幅に対する縦横比で枠を固定横長のロゴが低く出る問題を直した
04:42縦横比を2.1へ高くはなったが、襟で切れた
05:11縦横比を1.9に抑える(2.0付近が切れる境目)◎胸の高さで止まった

03:50 の直しは、余白をロゴの高さに対する倍率で決めていたのが失敗でした。横長のロゴは高さが小さいので、余白も小さくなって、お腹の側へ落ちてしまう。余白を「ロゴの高さ」ではなく「幅」に対して決める。同じ幅なら、縦長でも横長でも同じ高さに来るようになりました。

4最後に容量で落ちた

位置が決まると、今度は容量が気になりはじめました。細かい多色の絵を3,800px に拡大すると、PNG がかなり重くなります。SUZURI は1枚20MBを超えると受け付けません。

06:13 に、18.5MB を超えたら縮める仕組みを入れました。06:32 には上限を 15MB へ下げて、14.5MB を狙って縮める形に変更。送る前に必ず測り、超えていたら送らずに止めて、MB をログに出します。背中だけ幅を 3,200px に抑えたのは、表と背中を同じ送信で出すためです。

15MB にした理由は、コミットに書いてありません。画像は文字列(base64)にして送るので、15MB はちょうど約20MBになります。たぶんそのためだと、僕は読んでいます。

5今の設定値

最終的な設定は、胸と表が幅3,800px、背中が3,200px。縦横比は胸が1.9、表が1.65、背中が1.6。枠の上に取る余白は、幅の6〜9%です。たった3つの配置に対して、これだけの数字があります。

6正直に言うと、実物は見ていない

ここまでの調整は、すべて SUZURI の商品プレビュー画像で確かめたものです。コードのコメントにも「プレビューに合わせた」と書いてあります。

リポジトリの記録に、実物で測った数字はありません。プレビューと実物が数センチずれる可能性は、あります。左胸のワンポイントも、いまだにできません。SUZURI の側が中央固定のままなので、アプリ側ではどうにもならない部分です。

それでも、一つ学んだことがあります。数字を直す前に、相手が何を基準に大きさと位置を決めているかを調べる。最初の3回は、これを飛ばしていました。

完成した作品の紹介は 制作実績 に、ほかの開発の記録は ブログ にあります。実物を1枚注文して測ったら、そのずれを追記します。

この記事を書いた人

NextCode(沖縄県宜野湾市)は、iOSアプリ・ホームページ/LP・NFCデジタル名刺・AI業務自動化を作っている開発スタジオです。ここで書いているのは、実際に作って公開したものと、その過程で詰まったことだけです。

お問い合わせフォームは24時間受け付けています。

この記事が役に立ったらシェアしてください