<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AVIF | ウダ2Blog</title>
	<atom:link href="https://uda2.com/blog/tag/avif/feed/" rel="self" type="application/rss+xml" />
	<link>https://uda2.com/blog</link>
	<description>大阪でフリーランスとしてWEB制作している管理人が気になった技術をメモったり、作ったツールの紹介などを綴っているブログです。</description>
	<lastBuildDate>Fri, 25 Jul 2025 14:19:05 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
	<item>
		<title>Webp変換 with AVIF</title>
		<link>https://uda2.com/blog/webpconv/</link>
					<comments>https://uda2.com/blog/webpconv/#respond</comments>
		
		<dc:creator><![CDATA[uda2]]></dc:creator>
		<pubDate>Fri, 25 Jul 2025 13:57:33 +0000</pubDate>
				<category><![CDATA[制作日記]]></category>
		<category><![CDATA[AVIF]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[WEBP]]></category>
		<guid isPermaLink="false">https://uda2.com/blog/?p=2843</guid>

					<description><![CDATA[<p>WebP画像を作るたびにいちいちPhotoshopを立ち上げるのが面倒なのでChatGPTに相談しながら変換ツールを作成しました。WebpだけでなくAVIFにも対応して、ブラウザ上で変換し、複数ファイルはzipファイルに</p>
The post <a href="https://uda2.com/blog/webpconv/">Webp変換 with AVIF</a> first appeared on <a href="https://uda2.com/blog">ウダ2Blog</a>.]]></description>
										<content:encoded><![CDATA[<p>WebP画像を作るたびにいちいちPhotoshopを立ち上げるのが面倒なのでChatGPTに相談しながら変換ツールを作成しました。<br>WebpだけでなくAVIFにも対応して、ブラウザ上で変換し、複数ファイルはzipファイルにまとめてダウンロードもできます。<br><a href="https://tools.uda2.com/webpconv.html" target="_blank" rel="noopener" title="">https://tools.uda2.com/webpconv.html</a></p>



<span id="more-2843"></span>



<p>大抵のブラウザでWebpの表示はできるようになったが流石に生成は無理だろうからPythonでもいいから作ってくれないかと思ってChatGPTに聞いたらさくっとブラウザで動作するものを作ってくれた。昨今のブラウザは表示はもちろんで作成もできるるらしい。<br>そこから、見た目を他のツールと統一感を持たせて、操作感をいい感じに整えるのに半日ほどかけて調整。AIのおかげで個人的に使う分にはすぐに作成できるけど、公開するレベルのものとなるといまだ時間はかかってしまう。</p>



<p>そんな中、ChatGPTが「AVIF形式にも対応できますよ」と提案してきたので試してみた。けれど、いざ実行するとPNGに変換されたり、拡張子だけAVIFに変えて実体はPNGのままだったりと、おかしな挙動が出てきた。修正を頼んでもうまくいかず、Geminiにも相談してみた。</p>



<p>Geminiの方は「canvas.toBlob(…, &#8216;image/avif&#8217;)」によるAVIF出力の対応状況を尋ねても、「Safari以外の主要ブラウザではサポートされています」と返ってくる。けれど、実際にはうまく動かない。出力対応と表示対応を混同していたり、ソースを出しても「表示」対応の話ばかり。Geminiとは1時間近くやり取りしてもハレーションがひどくなる一方で埒が開かない。</p>



<p>結局もう一度ChatGPTに戻って聞き直してみたところ、「現時点では、主要ブラウザはAVIFの表示には対応しているが、canvas.toBlob(…, &#8216;image/avif&#8217;)による出力には未対応」との結論に。真偽は不明だけど、自分の環境でも正常に出力できなかったので「現時点でAVIFの出力に対応したブラウザは無い」という事にした。</p>



<p>代替手段としてChatGPTが提示してきたのが、avif.js（@jsquash/avif）というライブラリ。これはGoogle製のAVIFエンコーダー「libavif」をWebAssembly（WASM）化したもので、クライアントサイドだけでAVIF変換を行うことが可能らしい。</p>



<p>ただし、これも一筋縄ではいかない。最初に提案されたCDNバージョンはすでに開発が終了していたようで見つからず、現行のNPMパッケージの方にはCDN版が用意されていない。ChatGPTがjsDelivrにある古いバージョンを勧めてきたが、CORS（クロスオリジン）の制限や外部依存が気になり、最終的に自分のサーバーにインストールすることに。</p>



<p>ところが、パッケージはNode.js用のモジュール形式（CommonJS/ESM）で、そのままではブラウザでは動かせない。ChatGPTの指示に従ってビルド済みのJS（avif.min.js）を生成したが、WASMファイル（avif_enc.wasm）は自動で出力されなかった。インストールフォルダ内にあったWASMを手動でコピーしたところ、なんとか動作するようになった。</p>



<p>とはいえWASMはネイティブアプリではないため、AVIFへの変換処理は正直言って遅い。それでも、クライアントだけでAVIFを生成できる手段としては現状これが一番実用的かもしれない。</p>



<p></p>The post <a href="https://uda2.com/blog/webpconv/">Webp変換 with AVIF</a> first appeared on <a href="https://uda2.com/blog">ウダ2Blog</a>.]]></content:encoded>
					
					<wfw:commentRss>https://uda2.com/blog/webpconv/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
