26

PHPを使用してJPGからEXIFデータを削除する方法はありますか?PELについて聞いたことがありますが、もっと簡単な方法があることを望んでいます。オンラインで表示される画像をアップロードしていますが、EXIFデータを削除したいのですが。

ありがとう!

編集:ImageMagickをインストールしない/インストールできません。

4

8 に答える 8

18

ImageMagick を使用して PHP で行う簡単な方法です (インストールして有効にしていると仮定します)。

<?php

$images = glob('*.jpg');

foreach($images as $image) 
{   
    try
    {   
        $img = new Imagick($image);
        $img->stripImage();
        $img->writeImage($image);
        $img->clear();
        $img->destroy();

        echo "Removed EXIF data from $image. \n";

    } catch(Exception $e) {
        echo 'Exception caught: ',  $e->getMessage(), "\n";
    }   
}
?>
于 2010-09-01T04:48:23.020 に答える
18

別の名前でgd保存した画像のグラフィック部分を新しいものに再作成するために使用します。

PHP gdを参照してください


編集 2017

新しい Imagick 機能を使用します。

画像を開く:

<?php
    $incoming_file = '/Users/John/Desktop/file_loco.jpg';
    $img = new Imagick(realpath($incoming_file));

イメージ内のすべての ICC プロファイルを保持してください。

    $profiles = $img->getImageProfiles("icc", true);

次に、画像を削除し、プロファイルがあれば元に戻します

    $img->stripImage();

    if(!empty($profiles)) {
       $img->profileImage("icc", $profiles['icc']);
    }

この PHP ページから来ています。ページの下にある Max Eremin のコメントを参照してください。

于 2010-09-01T04:40:38.420 に答える
6

以下は、jpeg ファイルのすべての EXIF データを削除します。これにより、元のファイルのコピーが EXIF なしで作成され、古いファイルが削除されます。画像の品質の詳細を失わないように、100 品質を使用します。

$path = "/image.jpg";

$img = imagecreatefromjpeg ($path);
imagejpeg ($img, $path, 100);
imagedestroy ($img);

(グラフの簡単な近似は、ここで見つけることができます)

于 2012-09-07T17:24:27.160 に答える
3

私はあなたの質問を完全に誤解しました。

このジョブを実行するには、コマンド ライン ツールを使用できます。または、それを行う独自の php 拡張機能を記述します。役に立つこのライブラリを見てください:http://www.sno.phy.queensu.ca/~phil/exiftool/

乾杯、

vfn

于 2010-09-01T03:57:49.500 に答える
1

GDそれについてはよくわかりませんが、 oを使用して可能であればImageMagick、最初に頭に浮かぶのは、新しいイメージを作成し、古いイメージを新しいイメージに追加することです。

于 2010-09-01T04:44:38.113 に答える