• 締切済み

画像処理GD×

はじめまして。 下記は入力された1つの画像を指定したサイズで一部をコピーし 分割しpng形式にしていくプログラムです。 GDを使って処理していたのですが… GD,imagemagick等は使わないで処理する条件にすることになってしまいました。 ↓↓処理 入力された画像のsizeを調べる---getimagesize getimagesizeで画像の種類を判断し if(gifだったら) { $imgOrg = imagecreatefromgif(入力された画像) } if(jpeg,pngだったら…) {…} $max横=画像size[0] / 256; $max縦=画像size[1] / 256; for($i<MAX横になるまで) { for($x<MAX縦になるまで) { $img = imagecreate(256,256); imagecopy($img, $imgOrg , 0 , 0 ,$i * 256, $x * 256, 256, 256); } $name = $i.$x."xxx.png"; imagepng($img, $name); //main処理 } こんな感じなのですが、これをGDを使わないでやると… imagecreatefrom[gif,jpeg,png] imagecopy imagepng を使う処理ができなくなり、 変わりの処理を1日調べたのですが GD等を使った例しかサイトに載ってなくて行き詰っています。 GDを使わずに変わりの処理でできるのか、それともできないのか 初心者なのでおかしいとこがあるかもしれませんがよろしくお願いします。

  • PHP
  • 回答数2
  • ありがとう数0

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

あとはghostscriptを使うという手もありますね。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

GDをつかわなければいいのか、すべてのモジュールだめなのかによります。 http://www.php.net/manual/ja/refs.utilspec.image.php 場合によってはPEARのImage_Canvasなどが使えるかもしれません。 http://pear.php.net/manual/ja/package.images.image-canvas.php 一から手で書くにはそれなりのスキルと努力が必要です

eagle0604
質問者

補足

事情がありモジュールのインストールができないとのことなので、 標準にインストールされているものしかつかうことができません。 pearやshellの標準モジュールでできるのであればそれは使える。 この条件で試行錯誤しているのですが、 画像処理を行うためにはモジュールをインストールしないとだめみたいなので 本当に1から手で書くしかないのかなーと思ってますが、 全然処理のロジックが思い浮かびません…。

関連するQ&A

  • PHP GD 画像が縮小できない

    宜しくお願いします。 ※ローカル環境です。 (WinXP PHP5 Smarty PEAR MySQL ※GDはインストされています。) 下記のコードで、サーバーにもともと上げてある画像(jpeg)を縮小して、 それをブラウザに表示させようと思います。 ですが、縮小されずに、元の画像サイズのまま表示されてしまいます。 おかしな点をご指摘下さいませ。 また、(1)で、 jpegファイルを取り込むコードがありますが、これは、 もし画像がGIFであったりPNGの場合を顧慮するなら、 取り込む際にそれぞれを判定するのが基本でしょうか? もし、今回のようにサバー元の画像をリサイズするのであれば、拡張子もわかっていますので、 jpegファイルだけのことを考えればいいですが、 たとえば、任意のアップロードされたファイルを扱う場合は、上記3種類を判定すして処理すべきですよね? 以上、2点を回答下さいませ。 // -- (1) // 画像を読み込む。 $file_path = "http://www元画像.com/img/aa.jpg"; $image = ImageCreateFromJPEG($file_path); //JPEGファイルを読み込む /*********** $image = ImageCreateFromGIF($file_path); //GIFファイルを読み込む $image = ImageCreateFromPNG($file_path); //PNGファイルを読み込む ************/ // -- (2) // 画像のサイズを取得。 $width = ImageSX($image); //横幅(ピクセル) $height = ImageSY($image); //縦幅(ピクセル) // -- (3) // 縮小した画像のサイズを決める。 $new_width = 100; $rate = $new_width/$width; //圧縮比 $new_height = $rate*$height; // -- (4) // 空の画像を作成する。 $new_image = ImageCreateTrueColor($new_width, $new_height); // -- (5) // サンプリングしなおす  ImageCopyResampled($new_image,$image,0,0,0,0,$new_width,$new_height,$width,$height); // -- (6) // ブラウザに出力する場合。 ImageJPEG($image); //ImageJPEG($image,'simpletext.jpg'); //ImageGIF($image); //環境によっては使えない //ImagePNG($image); // -- (7) // メモリを解放する。 imagedestroy ($new_image); imagedestroy ($image);

    • ベストアンサー
    • PHP
  • GIFを出せるGDありませんか?

    linux7.0をつかってます。PNGだけじゃなくてGIFの画像も作成できるGDはありませんか?著作権がどうとかで最近のGDはPNGしか出せないようになったらしいのですが、どうしてもGIFを出したいです。 お願いします。

  • getimagesize()を使用して画像の種類を取得するには?

    getimagesizeを使用して画像の種類(JPEG,GIFなど)を取得したいのですがなかなかうまくいきません。ソースは以下の通りです。 <?php $image = $_POST['image']; if(isset($_POST['add'])){ $img_type = getimagesize($image); if($img_type['mime'] == "image/jpeg"){ print"JPEGです。"; }elseif($img_type['mime'] == "image/png"){ print"PNGです。"; }else{ print"JPEG,PNG以外です。"; } } ?> <form action="this.php" method="post"> <input type="file" name="image"> <input type="submit" name="add" value="チェック!"> </form> よろしくお願いします。

    • ベストアンサー
    • PHP
  • 透過合成した画像からの縮小コピーで黒塗りに!

    PHPの処理によって透過処理した画像と画像を合成して出来た画像(test.png)を単純に小さいサイズのPNG画像として コピーしたいのですが、黒塗りになってしまい、調べながら思考錯誤してみましたができません。 分かる方、どうかお知恵を貸して下さい。 下記は、黒塗りになってしまうソースです。 <?php $img = 'http://www.angelito.biz/test.png' ; // 読み込む画像のアドレス $size = 100 ; // リサイズするサイズ (大きい方の幅をこれに合わせる) if (!($irc = @imagecreatefromjpeg($img))) // jpeg として読み込んでみる if (!($irc = @imagecreatefrompng($img))) // png として読み込んでみる $irc = @imagecreatefromgif($img) ; // gif として読み込んでみる if (!$irc) { // 画像が正しく読み込めなかったときの処理 echo '×' ; exit ; } if (imagesx($irc) > imagesy($irc)) { $rrc = imagecreate($size, $size * imagesy($irc) / imagesx($irc)) ; } else { $rrc = imagecreate($size * imagesx($irc) / imagesy($irc), $size) ; } imagecopyresampled($rrc, $irc, 0, 0, 0, 0, imagesx($rrc), imagesy($rrc), imagesx($irc), imagesy($irc)) ; // jpgeg 画像として出力 header('Content-type: image/png') ; imagepng($rrc) ; ?> ■環境 windows vista xampp/apache 2.2.4 PHP Version 5.2.3

    • ベストアンサー
    • PHP
  • 画像リサイズアップロード

    画像アップロードするプログラムを作成したのですが、元画像を指定したサイズ(アスペクト比を維持)させて画像をアップロードする方法を何度かトライしたのですが、経験浅く断念しています。GDで処理させる方法がベストと思っていますが、下記のサンプルコードを手直しお願いしていただけるか、下記と同様な手順での処理方法に類似したサイトがあれば教えてください。 処理の条件 ・元画像を指定サイズでアスペクト比を維持した状態でリサイズ ・元画像は削除? ・透過Gifも使えるといいです。 ・その他アドバイス if(is_uploaded_file($img)){ $imagesize = getimagesize($img); switch($imagesize[2]){ case 1: $img_name = $code . ".gif"; break; case 2: $img_name = $code . ".jpg"; break; case 3: $img_name = $code . ".png"; break; default: unlink($img); } if($img_name){ $sendpath = $path.$img_name; if(move_uploaded_file($img, $sendpath)){ $img_name = $img_name; } } }

    • ベストアンサー
    • PHP
  • PHP+GDについて

    PHPでGDを用いてPNGファイルを生成するスクリプトを作成したのですが、うまく動作しません。 <?php $filename = "G".date("Ymdhis").".png"; $im = imagecreate(550, 250) or die ("画像の作成に失敗しました"); $bg = imagecolorallocate($im, 255,255,255); $trans = imagecolortransparent($im, $bg); imageline($im, 60,0,60,140, $trans); $filedir="graph_img/".$filename; imagepng ($im,$filedir); imagedestroy($im); echo "作成完了!"; ?> このスクリプトを実行すると、PNGファイルは生成されるんですが、ファイルサイズが0で、スクリプトの実行がそこで中断されてしまいます。 何かよい解決方法はないでしょうか?よろしくお願いいたします。

    • 締切済み
    • PHP
  • PHP4+GDでの画像の減色処理

    携帯で写真を見るときに自動的にリサイズして 表示するスクリプトを作成しています。 PHP+GDで画像の減色処理は可能でしょうか? 色数を32~64くらいまで減色する方法が解りません jpg書き出しの場合は比較的サイズが小さくなるので 問題はないのですがauの古い機種の場合にはpngを 書き出すようにしていますがファイルサイズが 大きくなってしまい表示しきれません。 よろしくお願いします

    • ベストアンサー
    • PHP
  • PHPの画像処理

    PHP学習者です。 画像ディレクトリー内の画像をサイズを変えて表示するプログラムを作りましたが、JPG形式は表示されてもPNG形式やGIFが表示されません。 関係すると思われるコードの一部を掲載します。コードがおかしいのか、あるいは何かPNGのためにはしておくことがあるのか、詳しい方どうか教えてください。お願いします。 //*************************************************** public function getImage() // create thumbnail image to be sent to browser //*************************************************** { header("content-type:$this->mimetype"); switch($this->imageproperties[2]){ case IMAGETYPE_JPEG: imagejpeg($this->image,"",$this->quality); break; case IMAGETYPE_GIF: imagegif($this->image,""); break; case IMAGETYPE_PNG: imagepng($this->image,"", $this->quality); break; default: die("could not create image"); } // end case ; }

    • ベストアンサー
    • PHP
  • PHPで画像縮小

    質問します。自分は今PHPで画像の縮小をしようと思っています。 しかしうまくいきません。 コードは <htm> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>画像縮小</title> </head> <body> <?php $size = getimagesize("dl_button.png"); $image_in = imagecreatefrompng("dl_button.png"); $image_out = imagecreate( 90, 90 ); imagecopyresized( $image_out, $image_in, 0, 0, 0, 0, 90, 90, $size[ 0 ], $size[ 1 ] ); imagepng($image_out,"small.png"); imagedestroy( $image_in ); imagedestroy( $image_out ); ?> <img src = "dl_button.png" border = "0"> <img src = "small.png" border = "0"> </body> </html> となっています。 今のままだとエラーが出て、 「small.pngが見あたらない」と言われてしまいます。 ディレクトリは index.phpとdl_button.pngが同じ場所にあります。

    • ベストアンサー
    • PHP
  • Gif's on the Fly GD1.3

    C/C++ 系 Gif's on the Fly であった、GD1.3は今どこで手に入るの? なんかバージョン1.7あたりから、GIF使えないんすけど・・・・ (on the Fly するようなのは、PNGやJPEG使わないって~(T T)) というか今の奴は、一体なんと呼ぶのだろう… PNG's on the Fly? というわけで、『GIFが使えるGDライブラリ』のありかの情報お待ちしています。 なお、GIFライセンス話題うんぬんの話は知ってるので、いちいち書かないでね♪

専門家に質問してみよう