PRESSMAN*Tech

HTML5, CSS3からWordPress, AWS, Elasticsearchまで。プレスマンのスタッフが綴る技術ブログ。

1×1の透過gif画像を簡単に出力しよう

例えば、HTMLメールの開封チェックがしたいとか、アクセス解析がしたいとか、まあ色々と理由はあると思いますが1×1の透過gif画像をプログラムから出力したいってのは稀にあります。
そういえば、その昔はCSSを使わないで1×1画像でWebのレイアウトを組んでいたりいなかったりしてましたね。

PHPで画像を出力する方法はいくつかありますが普通に思いつくのはサーバー上の画像を読み込んで出力です。
でも、画像を用意したり、画像までのパスを書いたりで案外めんどくさいんですよね。

mb_http_output("pass");
header("Content-type: image/gif");
$file = '1x1.gif';
$fp = fopen($file,'r');
$gifdata = fread($fp,filesize($file));
fclose($fp);
print $gifdata;

つぎはちょいとひねってimage関数を使って出力してみます。でも、GDが必要になっちゃいますしなんか無駄なことをしている気が・・・・

mb_http_output("pass");
header("Content-type: image/gif");
$img = imagecreate(1, 1);
$color = imagecolorallocate($img,0,0,0);
imagecolortransparent($img,$color);
imagegif($img);

最後に一番簡単かなと思う方法です。あらかじめBase64でエンコードしておいた文字列をデコードして出力します。

mb_http_output("pass");
header("Content-type: image/gif");
print base64_decode('R0lGODlhAQABAIAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==');
投稿者:taichi

taichi の紹介

何でもやりますが、一応プログラマです。
このエントリーをはてなブックマークに追加

私たちと一緒に働きませんか?

株式会社プレスマンでは、プログラミングが大好きな方、仕事を通してさらにスキルを磨きたい方を募集しています。まずは募集職種をご覧の上、お気軽にお問い合わせください。あなたとお会いできるのを楽しみにしています。

プレスマンの採用情報を見る →

コメントは受け付けていません。

▲ 先頭へ戻る