2011-12-04 22 views
0

非常に簡単なコードを使ってPHPでイメージのサイズを変更しました。驚くべきことに、一部の画像では機能しません。問題はimagecreatefromjpeg()と関連している必要があります。これは黒い画像(背景画像)を生成するためです。イメージをPHPでサイズ変更

$picture="test5.jpg"; 
$url="http://www.pokerpurist.com/uploadedImages/bettingpro/NewsImages/TN98553_Perla-Beltran.jpg"; 
list($width, $height) = getimagesize($url); 

$new_height = $height/$width * 400; 
$image_p = imagecreatetruecolor(400, $new_height); 
$image = imagecreatefromjpeg($url); 
imagecopyresampled($image_p, $image, 0, 0, 0, 0, 400, $new_height, $width, $height); 
imagejpeg($image_p, $picture); 
echo "<img src='$picture' />"; 

この問題が発生し、サンプル画像が含まれています。これらの画像でこの問題につながる問題は何ですか?それは普通のJPG画像のようです。

ところで、PHP/GD2で画像をサイズ変更するのが最も簡単で効率的な方法ですか?

+0

あなたの投稿が混乱してからAsidoをダウンロードすることができます...問題は、正確に何ですか?代わりに黒いイメージが得られると言っていますか?この場合、 'imagecopyresampled'には' imagecreatetruecolor'のデフォルトが黒色として設定されています。 – Alasdair

+0

ヘッダー()を忘れないでください –

+0

@alasdair彼のサンプル画像は、jpg拡張子のPNGです... –

答えて

2

あなたのサンプル画像はJPEGではなくPNGです。おそらく、いくつかの検出コードを配置する必要があります...

編集:exif-imagetypeまたはImageMagickが使用されている可能性があります。

+0

あなたは大丈夫です!人々が間違ってWeb上で画像の拡張子を命名したようです。なぜ私はローカルファイルのこの問題に遭遇したことがないのだろうかと思った。私は 'exif_imagetype()'を使って正しい画像フォーマットを検出しました。 – Googlebot

2

@ちょっと、PHP/GD2で画像をサイズ変更するのが最もシンプルで効率的な方法ですか?

使用Asido:GD2(php_gd2)、MagickWand(php_magickwand)、 ImageMagickの拡張子(php_imagick)だけでなく、ImageMagickのため

  • プラグ可能なドライバ:PHPの画像処理ソリューション

    Asidoは、次の機能をサポートしていますシェル コマンド

  • "ハック"ドライバ:環境によって提供された他の機能のいくつかを使用して、特定のドライバの特定の障害に対する回避策
  • 様々なサイズ変更機能:比例リサイズ、唯一の幅または高さによってサイズ変更、リサイズストレッチ、フィットサイズ変更、フレームタイル透かしと大透かしの自動スケーリング
  • 回転画像
  • コピー画像を含む
  • 透かし画像をリサイズ別の
  • クロップ画像一方に
  • グレースケール画像
  • は異なるファイル形式
01との間で画像を変換します

あなたはAsidoウェブサイトにアクセスすることができない場合は、あなたがSourceForge.net

+0

この提案をありがとう。私はそれを試します:) – Googlebot

+0

ベクトル描画のためのGDよりも速いですか? – Alasdair

関連する問題