1

ディレクトリで画像をスキャンし、見つかった画像のサイズを変更して保存し、元の画像を上書きする PHP スクリプトがあります。画像からメタデータを削除するという事実を除いて、うまく機能します。

メタデータを抽出して画像に書き込むなど、メタデータを操作できる Toolkit を見つけました。このページでは、これを行う方法を説明します (ページの下部にあります)。

そのため、コードに追加しましたが、問題が発生しています。サイズ変更された画像にメタデータが書き込まれません。私は明らかに何かが欠けていますが、何が(おそらく私のコーディングスキルの欠如)理解できないようで、誰かが私のエラーを見つけて修正を提案できるかどうか疑問に思いました.

コードの関連部分は次のとおりです。

これは、見つかった画像とメタデータが含まれていることを確認するためだけに使用されます-html形式で印刷することにより

echo " $file <br> " ;
        $filename = $file;
        $exif_data = get_EXIF_JPEG( $filename );
        echo Interpret_EXIF_to_HTML( get_EXIF_JPEG( $filename ), $filename );

次に、画像のサイズを変更して保存し、メタデータを書き込むコードを次に示しますが、書き込みは行いません

$new_image = imagecreatetruecolor($new_width,$new_height);
        ImageCopyResized($new_image, $tmp_image,0,0,0,0, $new_width, $new_height, $width, $height);
        //Grab new image
        imagejpeg($new_image, $target_path);
        $image_buffer = ob_get_contents();
        ImageDestroy($new_image);
        ImageDestroy($tmp_image);
        echo " $file resized to $new_width x $new_height <br> \n";
        echo str_pad('',4096)."\n";
        $jpeg_header_data = put_EXIF_JPEG( $exif_data, $jpeg_header_data );
        put_jpeg_header_data( $filename, $filename, $jpeg_header_data ); 
        ob_flush();
        flush();

これは、書き換えコードを間違った場所に置いた場合ですか?それとも他の何かですか?

提案をありがとう。

4

1 に答える 1

0

問題はここにあると思います:

put_jpeg_header_data( $filename, $filename, $jpeg_header_data );

に変更

put_jpeg_header_data( $filename, $new/OUTPUT_image, $jpeg_header_data );

それがうまくいくことを願っています!

于 2013-05-08T13:43:02.220 に答える