PHP は画像のカスタム情報 _exif などを読み書きしますか?
PHP 画像
要件の説明:PHP を使用して画像ファイルを最適化しますが、この最適化は 1 回しか実行できず、2 回実行すると画像に修復不可能な損傷が生じます。画像が一度処理された後、画像ファイルにカスタム文字列が書き込まれることが期待されます。これは、画像が処理されたかどうかを判断するためにのみ使用されます。
PHP を使用して解決することを楽しみにしています。現在、JPEG形式といえばEXIF情報がありますが、これを打開策としてEXIF情報にカスタム文字列を書き込んでみることができます。しかし、GIF、PNG、BMP についてはどうすればよいでしょうか?
Google からこの製品を入手しました
Imagick::setImageProperty
ドキュメントによると http://www.php.net/manual/zh/imagick.setimageproperty.php
要件を満たしているようですが、この関数を使用します画像を保存してもう一度読みますが、私の使い方に問題があるかどうかはわかりません
これはアイデアですが、まだ実装されていないと思います。これは私の使い方の問題であり、この機能が実装できないということではありません。
APP13 をもう一度使用しようとしました
$image = new Imagick($file);$image->setImageProperty('Exif:Make', 'Imagick');$image->writeImage($file2);$image2 = new Imagick($file2);echo $image->getImageProperty('Exif:Make');
でも、それもうまくいきませんでした。
遠回りしてませんか?何か良い方法はありますか?必要なことはそれほど多くはありません。画像を壊さずに画像データに文字列を書き込み、次回その文字列を読み取れるようにしたいだけです。
皆さん、来て、いくつかのヒントを与えて、すぐに問題を解決してください。
ディスカッションへの返信(解決策)
GD でサポートされている画像の場合、画像の内容に影響を与えることなく、画像データの終了後にカスタム データを追加できます
サンプル コード
$size = getimagesize('1.jpg', $info);var_dump($size);if(isset($info['APP13'])){ $iptc = iptcparse($info['APP13']); var_dump($iptc);}
画像データが正しいことをご自身で確認してください破棄されていません
実際、一般的な概念があります。読み取り中に表示できるものは基本的にストリーミング データであり、そのようなデータの場合、ヘッダー ファイルは MIME タイプと長さ (または終了フラグ) を示し、その後長さ (または終了) を示します。 flag) 「余分な」データはメインデータの表示には影響しません、この概念によれば、rar、zip なども操作できます、笑
という考えのようです。同じ、つまりファイルのデータ形式の外に文字を挿入します。
私も最初はこの方法を考えて、いくつかのファイルを手動で編集したところ、GIFの動的画像が破損しました。当時はこの方法は無理だと思ったので、それ以上は進めませんでした。手動修正により破損したGIF画像を使用してxuzuningのコードでテストしたところ、手動修正はできないことが判明しました。
この解決策は基本的には実行可能と思われますが、問題は、すべての画像形式をテストすることはできないのではないかということです。この方法は決定的ですか? (GD がサポートしていれば問題ないのでしょうか?)
PS: まずはいくつかの形式で画像をテストしてみます。
これは、PHP で imagemagick 拡張モジュールをインストールする必要がある Imagick クラスを使用して実現できます
Google で Imagick 関数を見つけたと投稿したときにすでに述べましたが、実際には書き込み不可能です。上の人が言ったこと Imagick を使用してどのように実装されますか?
はい、GD でサポートされているすべての画像を使用できます (gif、jpg、png)
このような画像は圧縮されて保存されるため、ファイル ヘッダーにデータ領域の長さが示されます。 画像が表示されると、ソフトウェアはこの識別子を通じてデータを読み取り、解凍します
ただし、bmp ファイルなど、GD がサポートしていないファイルの場合は、それほど幸運ではありません。
bmp データはファイルの末尾からファイルの先頭まで配置されています。ファイルの末尾にコンテンツを追加すると、画像データが破壊されます
実際、最も簡単なテスト方法は、バイナリデータと元のファイルをコピーし、DOS コマンドを使用します
copy /b 元のファイル + バイナリデータの新しいファイル
次に、この新しいファイルに問題があるかどうかを確認します
まずこの解決策を使用しましょう PHP クラスまたは。さまざまな画像形式と互換性のあるもの。たとえば、画像にバッチで透かしを入れる場合、画像に透かしが入っているかどうかを判断する属性を追加できます。
お二人とも投稿ありがとうございます

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。
