这个范例可以用来图形转xpm给PHP_GTK用的,不过大家先看一下这个简单程序码,先了解原理,说xpm大概没几个知道,只好改写成这个范例。图形转Ascii。
<code><font color="#000000"><font color="#0000bb"></font><font face="新宋体" color="#007700"><?<br/></FONT><FONT face=新宋体><FONT color=#ff8000>## 画像ファイルを変換します <br/></FONT><FONT color=#0000bb>$Pic </FONT><FONT color=#007700>= </FONT><FONT color=#dd0000>"jerry.jpg"</FONT></FONT><FONT face=新宋体 color=#007700>; <br/></FONT><FONT face=新宋体>## 変換対象の文字String<FONT color=#ff8000><br/></FONT>$Ascii <FONT color=#0000bb></FONT>=<FONT color=#007700></FONT>"#"<FONT color=#dd0000></FONT></FONT><FONT face=新宋体> <FONT color=#007700>$Pic<br/><br/></FONT><FONT color=#0000bb>);</FONT><FONT color=#007700>If(</FONT><FONT color=#0000bb> Is_Array</FONT><FONT color=#007700>(</FONT><FONT color=#0000bb>$)画像サイズ</FONT></FONT><FONT face=新宋体><FONT color=#007700>)):<br/> <br/></FONT>$幅<FONT color=#0000bb></FONT>=<FONT color=#007700></FONT>$ImageSize<FONT color=#0000bb></FONT>[</FONT><FONT face=新宋体>0<FONT color=#007700><br/>]; </FONT><FONT color=#0000bb></FONT><FONT color=#007700>## 幅を取得</FONT> <FONT color=#0000bb></FONT>$高さ<FONT color=#007700></FONT>=<FONT color=#0000bb></FONT>$ImageSize<FONT color=#007700> </FONT>[</FONT><FONT face=新宋体>1<FONT color=#ff8000><br/>] ; </FONT><FONT color=#0000bb></FONT><FONT color=#007700>## 長さを取得 </FONT> <FONT color=#0000bb></FONT>Switch(<FONT color=#007700></FONT>$ImageSize<FONT color=#0000bb></FONT>[<FONT color=#007700> </FONT>2</FONT><FONT face=新宋体>]): <FONT color=#ff8000><br/></FONT><FONT color=#007700># # 4はSWFなので書いていないそれは終わりです</FONT> <FONT color=#0000bb></FONT><FONT color=#007700></FONT>):<FONT color=#0000bb> </FONT>$img <FONT color=#007700></FONT>=</FONT><FONT face=新宋体>ImageCreateFromGIF<FONT color=#ff8000><br/>(</FONT><FONT color=#007700>$Pic </FONT><FONT color=#dd0000></FONT></FONT>); <FONT face=新宋体>「システムは GIF 形式の画像ファイルをサポートしていません」<FONT color=#007700><br/></FONT><FONT color=#0000bb>);</FONT> EndIf;<FONT color=#007700> Break ;</FONT> <FONT color=#0000bb></FONT>$img</FONT><FONT face=新宋体>=<FONT color=#007700><br/>ImageCreateFromJPEG</FONT><FONT color=#0000bb>(</FONT><FONT color=#007700>$ Pic </FONT><FONT color=#0000bb></FONT><FONT color=#007700>);</FONT> Else:<FONT color=#0000bb> Exit(</FONT></FONT>「システムは JPG 形式の画像をサポートしていません」<FONT face=新宋体><FONT color=#007700><br/><br/>); If (</FONT><FONT color=#dd0000>ImageTypes</FONT></FONT>() & <FONT face=新宋体><FONT color=#007700>IMG_PNG<br/><br/><br/></FONT>) ):<FONT color=#dd0000> </FONT>$Pic</FONT><FONT face=新宋体><FONT color=#007700><br/>);</FONT> その他の場合:<FONT color=#0000bb>Exit(</FONT><FONT color=#dd0000>「システムは PNG 形式の画像ファイルをサポートしていません」</FONT></FONT><FONT face=新宋体>);<FONT color=#007700> Break;<br/> EndSwitch; <br/><br/>$y<br/></FONT>=<FONT color=#dd0000></FONT>1</FONT><FONT face=新宋体>;<FONT color=#007700><br/>$ y<br/><br/><=</FONT><FONT color=#0000bb>$身長</FONT><FONT color=#007700>;</FONT><FONT color=#0000bb>$y</FONT><FONT color=#007700></FONT><FONT color=#0000bb>++):</FONT> For(<FONT color=#007700></FONT>$ x<FONT color=#0000bb></FONT>=<FONT color=#007700></FONT>1<FONT color=#0000bb></FONT>;</FONT><FONT face=新宋体>$x<FONT color=#007700><br/>) <= </FONT><FONT color=#0000bb>$Width</FONT><FONT color=#007700>;</FONT><FONT color=#0000bb>$x</FONT><FONT color=#007700></FONT>++):<FONT color=#0000bb> # ポイントインデックスの取得 </FONT> <FONT color=#007700></FONT>$ インデックス<FONT color=#0000bb></FONT>= <FONT color=#007700></FONT>ImageColorAt<FONT color=#0000bb></FONT>(</FONT><FONT face=新宋体 color=#007700>$img<br/></FONT>,<FONT face=新宋体><FONT color=#ff8000>$x<br/></FONT> ,<FONT color=#0000bb></FONT>$y<FONT color=#007700></FONT><FONT color=#0000bb>); </FONT>## RGB カラーを取得します <FONT color=#007700> </FONT><FONT color=#0000bb>$rgb </FONT><FONT color=#007700>= </FONT><FONT color=#0000bb>ImageColorsForIndex</FONT><FONT color=#007700>(</FONT><FONT color=#0000bb>$img</FONT></FONT>, <FONT face=新宋体 color=#007700><br/>$index</FONT><FONT face=新宋体><FONT color=#ff8000>); この形式 <br/> </FONT> <FONT color=#0000bb>デチェック</FONT><FONT color=#007700>(</FONT><FONT color=#0000bb>$rgb</FONT><FONT color=#007700>[</FONT><FONT color=#0000bb>赤</FONT><FONT color=#007700>])。 ]); </FONT>エコー<FONT color=#0000bb></FONT>"< FONT COLOR=$color SIZE=1>$Ascii</font>"</font><font face="新宋体" color="#007700"><br></font>; <font face="新宋体"> EndFor;<font color="#ff8000"> Echo <br></font> "<BR>"<font color="#0000bb"></font><font color="#007700"></font>;<font color="#0000bb"> EndFor;</font>EndIf;<font color="#007700"></font> <font color="#0000bb">?> ;</font><font color="#007700"></font><font color="#0000bb"></font><font color="#007700"></font><font color="#0000bb">
</font>
<font color="#007700">
</font>
<font color="#0000bb">
</font><font color="#007700"></font></font></font> |