PHP : GD で Windows のビットマップを扱う 以前、GD => BMP の片方向を見つけて、手書きブログ用のオンラインハートエディタで利用したのですが、そのハートエディタの中身を再利用できるように整理する為に調べていると、BMP から GD への変換が前回見つけた PHP のオンラインマニュアルの投稿部分の違うページにある事が解りました。 以前は、関数一覧のページだったのですが、今回は imagecreate 関数のページでした。双方向ですし、サンプルソースも長くなるので上記リンクから参照できるようにしています。 一応、動く簡単なサンプルコードにはなっていますが、オリジナルと全く変わっていません ( 一部コメントが化けてたので日本語にしましたけれど ) 処理の特徴としては、unpack や pack 関数を使用してバイナリデータを本来の構造どおりに整備して処理しているところです。 フォーマットに使われている文字列は、1文字目が形式で、2文字目以降は『名前(任意)』です。
コード | 説明 |
---|---|
a | NUL で埋めた文字列 |
A | 空白で埋めた文字列 |
h | 十六進文字列、下位ニブルが先 |
H | 十六進文字列、上位ニブルが先 |
c | signed char |
C | unsigned char |
s | signed short (常に 16 ビット、マシンのバイトオーダー) |
S | unsigned short (常に 16 ビット、マシンのバイトオーダー) |
n | unsigned short (常に 16 ビット、ビッグエンディアンバイトオーダー) |
v | unsigned short (常に 16 ビット、リトルエンディアンバイトオーダー) |
i | signed integer (サイズおよびバイトオーダーはマシン依存) |
I | unsigned integer (サイズおよびバイトオーダーはマシン依存) |
l | signed long (常に 32 ビット、マシンのバイトオーダー) |
L | unsigned long (常に 32 ビット、マシンのバイトオーダー) |
N | unsigned long (常に 32 ビット、ビッグエンディアンバイトオーダー) |
V | unsigned long (常に 32 ビット、リトルエンディアンバイトオーダー) |
f | float (サイズおよび表現はマシン依存) |
d | double (サイズおよび表現はマシン依存) |
x | NUL バイト |
X | 1 バイト戻る |
Z | NUL 埋め文字列 (PHP 5.5 以降) |
@ | 絶対位置まで NUL で埋める |
オリジナルコードへのリンク to create an image from a BMP file If you happen to need a way to output a Windows BMP file
|
【PHPの最新記事】
- PHP で cURL はオプションが全て。いろいろあるので、ちょっとまとめ【2014/7/31の記事】
- PHP : 画像を返す処理( readfile ) と画像を縮小する処理( GD )
- PHP における標準的なテスト用アップロードのテンプレート
- PHP : MySQL から JSON 文字列を返す自作(テスト用) API テンプレート
- ImageMagick を Windows(32ビット)の PHP で利用する
- PHPで、ベタベタな日付チェック。汎用的とも言うw
- PHP でカタカナのフリガナ入力のチェック
- TCPDF で罫線を引く
- フリーフォントを使って PHP 画像(GD)として埋め込むアクセスカウンターの DB 処理部分
- フリーフォントを使って PHP 画像(GD)として埋め込むアクセスカウンターの画像出力部分の作成
- PHP + GD : 四角形への DropShadow
- PHP : ログインとブラウザの当日日付データ
- hash_hmac は秘密鍵があるので、辞書の総当りとかでパスワードは解りませんから。パスワード抜かれるのは、フィッシングがスパイウェアか、本人が口に出した場合ですね。
- すごく当たり前の事なんですが、UTF-8N で保存されたテキストファイルをメモ帳で変更して保存したら先頭に EF BB BF という爆弾が仕掛けられるのでダメですよ
- 5秒毎にリロードする PHP ページ
- 実用的かどうかは置いておいて、修正画面の日付入力に jQuery のカレンダーを使用する
- PHPで使用する為にフォント(.TTC)の分解
- 【PHP】 <?=$value?> ではない変数埋め込み手法
- PHPでサービス停止( extension=php_com_dotnet.dll )
- PHP : コマンドライン php(cli) で10進数と16進数の変換