PHP版の特徴イメージ

WBOY
リリース: 2016-07-25 09:01:52
オリジナル
924 人が閲覧しました
この方の投稿を見て興味を持ちました。 http://www.oschina.net/code/snippet_234517_15356

画像はデフォルトで 10 倍に拡大されるため、より鮮明に見ることができます...

OSC ロゴがテストでどのように機能するかを見てみましょう。
(写真は省略されています。このアドレスを新しいウィンドウで開くと写真が表示されます、2000*560 http://img.it-home.org/data/attachment/forum/2014pic/11033136_K1mt.png)


=============================================== ===
PNG、GIF、JPG を試してみましたが、それらはすべて通常どおり特徴付けることができます :) PHP版の特徴イメージ
  1. $txt =array('A','B','C','D','E','F','G','H','I', 'J','K');
  2. //元の画像を読み込みます
  3. $rawImage = ImageCreateFromGIF('logo.gif');
  4. //元の画像の幅と高さを取得します
  5. $rawImgWidth = ImagesX($rawImage);
  6. $rawImgHeigh = ImagesY($rawImage);
  7. //元の画像のグレースケールを取得します
  8. $grayData = getGrayData($rawImage,$rawImgWidth,$rawImgHeigh);
  9. //画像を破棄します
  10. ImageDestroy($rawImage);
  11. //作成text image
  12. $ txtImage = ImageCreate($rawImgWidth*6,$rawImgHeigh*9);
  13. //新しい画像の背景色
  14. imagecolorallocate($txtImage,0,0,0);
  15. //最大グレースケールを取得します
  16. for($ i=0; $i $maxGrayArray[$i] = max($grayData[$i]);
  17. }
  18. $maxGray = max($maxGrayArray);
  19. //グレースケールの対応を設定 Color
  20. for($i=0;$i<$maxGray+1;$i++){
  21. $color = 255-round(200/$maxGray)*$i+55;
  22. $gray[$i] = imagecolorallocate( $txtImage,$color,$color,$color);
  23. }
  24. // 文字を描画します
  25. for($y=0;$y<$rawImgHeigh;$y++){
  26. for($x=0;$ x<$ rawImgWidth;$x++){
  27. Imagechar($txtImage,1,$x*6,$y*9,$txt[rand(0,10)],$gray[$grayData[$x][$y] ]]) ;
  28. }
  29. }
  30. //最終画像を作成します
  31. $Image = ImageCreate($rawImgWidth*10,$rawImgHeigh*10);
  32. //画像をストレッチします
  33. imagecopyresampled($Image, $txtImage, 0, 0 , 0, 0 ,$rawImgWidth*10,$rawImgHeigh*10,$rawImgWidth*6,$rawImgHeigh*9);
  34. //ファイルヘッダーを定義
  35. header('Content-type: image/png');
  36. //出力image
  37. ImagePNG( $Image);
  38. //画像を破棄
  39. ImageDestroy($Image);
  40. /*
  41. グレー値を取得
  42. */
  43. function getGrayData($mImage,$mImgWidth,$mImgHeigh){
  44. for( $mY=0; $mY<$mImgHeigh;$mY++){
  45. for($mX=0;$mX<$mImgWidth;$mX++){
  46. $mRGB = Imagecolorat($mImage, $mX, $mY);
  47. $mR = ($ mRGB >> 16) & 0xFF;
  48. $mG = ($mRGB >> 8) & 0xFF;
  49. $mB = $mRGB & 0xFF;;
  50. $mGrayData[$mX][$ mY] = ($ mR * 19595 + $mG * 38469 + $mB * 7472) >> 16;
  51. }
  52. }
  53. return $mGrayData;
  54. }
  55. ?>
コードをコピー


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート