チェック柄画像作成プログラム(5)

 夏はあついし、引きこもるに限る。

そして推しの踊ってみたイベントも関東ではあまりなかったので、時間もあるなぁ。

と、3連休前の平日に考えていて、

あ、そうだ

チェック柄というか背景画像作成ツール、思いついた背景があったからそれを作ろう。

というわけで、その背景を作る。

でんっ!まるさんかくしかくばつ、を2色でランダム配置するやーつ。
ブロック幅毎に、形と色を乱数で決めて、描写する。簡単ですね。15分くらいで出来ました。

はい、規則正しいの気になりますね。規則正しくないのも欲しいですね。
大きさもランダムにしてしまおう。
でんっ!配置する場所とサイズを変更して、何個表示するかをパラメータで持たせています。
これが難しいのが重なったときです。乱数とはいえ同じ箇所に集中してしまっては変な形になってしまう。それを防ぐのに重なった場合はそこに配置せず、リトライします。リトライ回数が大きくなれば諦めることで、パラメータとして与える個数がかなり大きくてもエラーがないようにしています。
…と書きましたが!重なり判定は作るの考えるの面倒ですよね。うん。
はい、AIに書かせました。chatgptに任せました。そんなわけで、これも15分くらいです。
AIならそんなにかからんだろ!って思うかもしれませんが、
画面側のパラメータ設定とかも作って、AIが書いたコードを手直しをちゃんとしてます。
…これブロック幅指定が消えててバグってるな…あとで直そう…
最小サイズ~ブロック幅の大きさの図形になります。

そして考える。
うーん
図形、つまらんな?とはいえ何でもかんでもランダムにすりゃいいってもんじゃない。
いわゆるテーマみたいなのは必要だ。
自分で描くイラストはほとんどが推しの踊ってみたの動画だ。
それに合う記号。
うん、音楽記号だね。
図形を音楽記号に変更。
はい。一瞬だね。
何が一瞬だって?AIに書かせたから一瞬だよ。パラメータはさっきのと一緒だからね。10分かかってない。ただ注意事項でフォントを考慮しろと。
いやそのままのコードで表示出来たからそれでいいよ。

まぁ確かにBlazorで作っているから本当なら注意は必要だろうけど、Chromeで表示出来るフォントになっていれば大丈夫。てか、そもそも作ったこのプログラム、どこにもアップロードしているわけじゃないから、このPCで表示出来れば何でも良いんだよな。ヘヘ


翌日
触ってしまったから、また考え始めてしまった。
そうだ、夜空も作りたいんだった。
ほい!AIがすぐ作ってくれ…
ん?
白くない?何も出力されてない?AIミスりやがったな?これだから信用ならないんだよ。
おかしくないな…なんでや…
ベースの色を白にしてたからでした。大きい星ですら小さかった…
これは大きい星、小さい星、輝いている星の3つに分けています。それが星っぽくなります。
画面側でそれぞれの表示する個数指定出来るようにして完成っと。

AIにそう指示したからそうだけどさ!!!
なんでリアルな夜空だよ!!!
まぁこれは残しておいて、リアルじゃないイラスト風の星にしたバージョンを作ろう。
はい。
大きくなったからか、同じ個数にしても存在感バッチリやね。白っぽく見えるけど、ランダムで指定した色が背景用の薄い色だからで、ちゃんと黄色指定すれば黄色になります。

AIあると速度がさらに増してしまったな…、それはそうなんだけどね。
でもAIが作ったソースだと、「自分で作った記憶」がないから、それを管理したいな…
ソース管理するか…。
Githubでいいよな。

いいよな、とかいいつつ使ったことないんだけどね。
Githubのアカウントをつくりーの
Gitをインストールしーの
プロジェクトをGitでinitして登録しーの
あぁ、管理したくないファイルいっぱいあるーー
.gitignoreファイルつくりーの
コミットしーの
プッシュしーの

よし、OK。

うん?あー、Github Pagesにデプロイすればgithub.io上で公開できるか
でも今のBlazorのプロジェクトのままでいけるのか?

デプロイ設定してみーの

デプロイエラー

やっぱりダメじゃないか。あと、Github Pagesの設定がなんか表示されないし。

なんでや。

調べる。あ、最初にGithub登録したときにプライベート設定してたから?!

確かにまだ公開しないからプライベートだよな、って設定したわ。

そこを変える設定どこや!!!!!!!

いやどこ??????????

わからん。


~~数日後~~

あ、そうだ、設定探すんだった。

えーどこだ…

これだああああああああ

なんでSettingを押したページの左にメニューが羅列していて、そのなかにPagesがあるのにSetting押したときのHomeの下の下の下に設定があるんだよ…

そしてデプロイ!

デプロイエラー

なんでや。って思ったけど、デプロイの設定ファイルをAIにまかせて作ったからだよーん

エラー内容を確認。

うん、Blazor、Web Appだからだ。

検索したときにBlazorはGithub Pagesでデプロイ出来ると見たが、どうやら

Blazor Server + Blazor WebAssemblyはGithub Pagesでは動作しないらしい。

動作するのはデプロイで静的サイトになるBlazor WebAssembly Standalone。

学習がてらで作ったからServer利用のプログラムになってたな…。

モード指定しなければ大丈夫か?と思って検索したら

プロジェクト作り直ししろ。と出てしまった。

まぁ作った部分はほぼ移植すれば動くはずだし、プロジェクトから作り直し。

移植してーの

エラーを解消しーの

ローカル実行しーの

問題なし確認しーの

コミットしーの

そして自動でデプロイ!

デプロイエラー

なんでや。エラー内容を見る。

うん、Blazor WebAssemblyのインストールに失敗している。

どうやら、.NET のバージョン違いのようだ。コマンドに-net9が足りなかったらしい。

AIが作ったデプロイコマンドだからな。やれやれだぜ。

そしてデプロイ!

通ったわ。意外とすんなりだったな…、いやローカルじゃ普通に実行できとるしな。

これで、VisualStudioからgitにpushすれば自動で更新してくれるな。

サーバで動作見てみよう。

おぉ!表示された!(それはそう)

で、適当にチェック柄作成、っと。

ツール「  」

ん?あぁ、時間かかってるのか

ツール「  」

ん?結構待ったぞ?表示されない??

調べる

Web「Github Pagesで画像表示されないのはSystem.Drawingが動作しない可能性があるからやで」

ぼく「へー」

は??使えんの?Bitmap処理出来んの??

うーん、どうするか。

代替パッケージでも探すか…、たすけてAIくーん!

AIくん「SixLaborsおすすめやで、こんな風に使うで」

ぼく「へー」

変更してみる。

そもそもローカルでもエラーになるな…

ぼく「変更してみたけどエラーになったで」

AIくん「こうなおします」

ぼく「またエラー」

AIくん「こうなおします」

ぼく「またエラー」

AIくん「こうなおします」

あ、エラーやっとなくなった、実行や!

エラー

なんでや。えーっと、ライセンス登録されていない?

あん??ライセンス見てなかったわ。独自ライセンスか。

非商用、または商用でも収益が少なければApache Lisence 2.0か、で、それはどこで設定するんや。

…見つからん!!面倒だ!!!!

ぼく「ライセンス面倒だから、他のパッケージのおすすめくれ」

AIくん「Canvas API、SkiaSharp、Magick.NETあたりだけど、Magick.NETはおすすめしにくいです。SkiaSharpが一番近いです。」

おすすめしないならだすなよ。SkiaSharpにするか。

直して

直して

直して

多いな!!!!

そりゃ画像処理部分全部書き直しだからな。

よく考えたら出力のパターン、蓄積でかなり増やしてたわ。何個だ?

39パターン!?共通部分も直さないとだし。しかし地道に直すしかない。

一番面倒なのが色を指定するところがARGB指定→RGBA指定になってるところなんだよね。

…この関数はどの関数になるんだ?こうしたのはAIに直してもらうか…。

2日かけてなおしきった。

あ、ちなみにつきっきりじゃなくて配信とか見たり、ゲームしたりしながらだよ。

よし、これでOK

さすがに全部のパターン動作確認は面倒だ、適当なチェック柄で確認。

よし表示された。

ふぅ。

公開する設定になっちゃっているから、READMEとかLICENSE書かないとな…

書く。

面倒だとか言ってたけど、AIの変換信じてないんだよな…。見てみるか…。

これはOK、

これもOK、

これはダメ、

これはOK、

これおかしいか?

ダメOKOKおかしいOK

って結構ダメじゃねーか!!!

一番ダメなのは音楽記号のやつだよ。□になっちゃってるじゃねーか。

そうだよフォントだよ。静的サイトになっているから、Windowsのフォントフォルダなんて参照しない。たすけてAIくーん

AI「音楽記号ならSegoe  UI Symbolでいいんじゃないかな。」

ぼく「へー、どこに配置するの?」

AI「wwwrootのなかだね。ただ、Windows標準フォントは再配布禁止だから気をつけてね」

ぼく「それはダメじゃないか」

AI「それだったらNoto Sans Symbols でいいかもね」

ぼく「へー」

やってみる

ぼく「ダメだったよ」(修正箇所勘違い)

AI「それだったら音楽記号が一般的なのだけならNoto Sansでいけるかも」

ぼく「ダメだったよ」(修正箇所勘違い)

AI「それだったら音楽記号入っているか確かめたほうがいいよ、コードに仕込んで。」

はいってないじゃないか。なんでや。

あ、Noto Musicのフォントもあるやん。

はいってない…?Unicode指定してるんだぞ…?

あ、修正箇所間違ってた。Notoだったらどれでもいけてたわ。まぁせっかく調べたし、音楽記号元々4つだったけど、Musicのフォント入れればもっと音楽記号入れれるからそれも入れよう。

ダメなところ修正して~

修正して~

あ、バグ挙動で残してたやつバグ挙動してなくて微妙だな…、はずしておこう。

処理中の表示ないからわかりにくいなー、ぐるぐる表示するようにしてー


というわけで

画像作成ツール

公開してます。

バグだったり、動作しなかったり、要望があったりしたら、コメント欄とかXだったりとかリアルに話振ってね。気分で直したり直さなかったりします。

サイズ大きくすると結構メモリ食うのと遅いので気をつけてね。



コメント

このブログの人気の投稿

日常(33)超かぐや姫!の考察

日常(21)ぺん誕2025の旅

日常(30)推しの誕生日イベント