html の <img> タグは src 属性にファイル名を指定するのが通常ですが、
Data URI スキームを利用することで画像データを html そのものに埋め込むことが出来ます。
書式は「data:MIMEタイプ;base64,データの内容」です。
画像そのものを html ソースに記述するためソース内には大量の文字の羅列がうめつくされることになります。
また、Safari, Chrome, FireFox などの主要ブラウザでは正しく表示されますが、IE に関しては IE8 以上でないと表示されない上、IE8 ではファイルサイズの上限が 32KB までとなっているため注意が必要です。
<?php $img = imagecreatetruecolor(100, 100); $color1 = imagecolorallocate($img, 30, 50, 170); $color2 = imagecolorallocate($img, 255, 255, 255); $color3 = imagecolorallocate($img, 230, 0, 0); imagefill($img, 0, 0, $color2); imagefilledellipse($img, 50, 50, 90, 90, $color1); imagefilledellipse($img, 50, 50, 60, 60, $color2); imagefilledellipse($img, 50, 50, 30, 30, $color3); ob_start(); imagejpeg($img, null, 90); $content = base64_encode(ob_get_contents()); ob_end_clean(); imagedestroy($img); ?><!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title></title> </head> <body> <img src="data:image/jpeg;base64,<?php echo $content;?>" alt="sample" /> </body> </html>
HTML ソース
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title></title> </head> <body> <img src="data:image/jpeg;base64,/9j/4AAQSkZJRg(中略)AKKKKAP/Z" alt="sample" /> </body> </html>
参考
http://ja.wikipedia.org/wiki/Data_URI_scheme
Similar Posts:
- [PHP]背景の明るさを基準に見やすい文字色を組み合わせる(YUV輝度)
- [PHP]Twigテンプレートの実践的な構成と作り方
- [JS]画像ファイルアップロード前にプレビューを表示する
- [PHP]画像ファイルのアップロードとGDを使ったリサイズ
- [PHP]マルチパートメールの構造
- [PHP, JS]jQuery UI autocompleteを使った自動補完(候補予測)
- [JS, jQuery]ページ内に他のページをiframeのように埋め込む
- [CSS, jQuery]クリックされたボタンの色を変更したり文字を書き換えたりする