問題タブ [imagick]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PHP/GD ラッパーを Imagick に移植する際の問題
私は最近、Imagick がカラー プロファイルをサポートできるため、GD よりも優れた品質の画像を生成できることを発見しました (詳細については、この質問/回答を参照してください)。そのため、代わりに Imagick クラスを使用するように GD ラッパーを移植しようとしています。現在の GD 実装は次のようになります。
私は Imagick クラスメソッドを試してきましたが、これは私がこれまでに得たものです:
基本的な機能 (切り抜き/サイズ変更/透かし) は既にサポートされていますが、まだいくつかの問題があります。PHP Imagick のドキュメントはちょっとひどいので、利用可能なすべてのメソッドと引数を組み合わせて試行錯誤する以外に選択肢はありません。これには多くの時間がかかります。
私の現在の問題/疑問は次のとおりです。
1 - 透明度を維持する
私の最初の実装では、行は次のとおりです。
透明な PNG 画像を PNG 出力に変換するときに、透明度を維持する効果があります。ただし、透明な PNG 画像を JPEG 形式に変換する場合は、透明なピクセルの色を白に設定する必要があります。これまでのところ、ImageMagick を使用して、すべての透明ピクセルを白に変換することしかできませんでしたが、出力形式がサポートしている場合、透明度を維持することはできません。
2 - 出力形式の圧縮 (つまり、JPEG と PNG)
私の元の実装では、PNG で 9 の圧縮レベル、JPEG で 90 の品質を使用しています。
台詞:
JPEG 画像を圧縮しているように見えますが、GD は$value
品質引数と同じものを使用してさらに圧縮することができます。なぜですか? 私はまた、次の違いについても暗闇の中にいます。
Imagick::setCompression()
/Imagick::setImageCompression()
そしてImagick::setCompressionQuality()
/Imagick::setImageCompressionQuality()
どちらを使用する必要があり、それらの違いは何ですか? また、最も重大な問題は PNG 圧縮に関係しています。Imagick 圧縮定数のリストはPNG 形式をサポートしていないようです。
たまたま 100 ~ 200 KB のサイズの GD PNG 出力が、代わりに Imagick で出力すると非常に太くなるため (2 MB 程度のサイズ)、これは厄介な問題です...
この問題に関する SOに関する質問がいくつか ありますが、外部アプリケーションに依存しない有効な解決策を見つけることができませんでした。これは ImageMagick では本当に不可能ですか?!
3 - 画像畳み込み
画像を少し鮮明にするために呼び出した GD 実装ではImageConvolution()
、Imagick に画像を鮮明にするメソッドが組み込まれていることは知っていますが (まだ試してみる機会がありませんでした)、Imagick に関数に相当しImageConvolution()
ます。
4 - カラー プロファイル
これは元の実装とは関係ありませんが、私もそれを正しくしたいと考えています。
Imagick / International Color Consortium sRGB カラー プロファイルを常にすべての画像に追加する必要がありますか? それとも、特定のカラー プロファイルがある (またはない) 場合にのみ追加する必要がありますか?
また、既存のカラー プロファイルを削除する必要がありますか?
これは幅広い質問かもしれませんが、カラー プロファイルに関する私の理解は非常に限られているため、これに関する一般的なガイダンスをいただければ幸いです。
5 - リモート画像を開く
ImageCreateFrom*
GD は、関数を介して、または私が行っているようにfile_get_contents()
組み合わせて使用して、リモート画像を開くことをネイティブにサポートしています。ImageCreateFromString()
Imagick は、ローカルの画像を開くか、ファイル ハンドルを開くことしかできないようです。Imagick にリモート イメージを読み取らせる簡単な方法はありますか (ファイル ハンドルを開いたり閉じたりする必要はありません)。
誰かがこれらの質問のいずれかに光を当てることができれば、私は非常に感謝しています.
前もって感謝します!
php - Imagick: Imagick アイテムに重力を設定する
Imagick で画像の重力を設定するのが本当に難しいです。
ImaickDraw オブジェクトの重力を設定することはできましたが、Imagick オブジェクトで設定することに成功していません。
以下は、私が現在使用している基本的なコードです。ImagickDraw と同じものを使用しましたが、明らかに機能していません。
描画オブジェクトではなく、既存の画像の重力を設定する方法はありますか?
ありがとう!
php - 'ImagickException'とメッセージ'ファイルを開くことができません
「ImagickException」とメッセージ「ファイルを開くことができません/data/web/myweb.com/sub/7/file:/data/web/myweb.com/sub/7/sites/default/files/logo.png」
こんにちは。このメッセージは、WebページからPDFファイル(pngファイル)を作成したいときに表示されます。PDFのコンテンツにPNGファイルが含まれている場合にのみエラーがスローされます。すべてのpngファイルを削除すると、それはpdfになっているはずですが、すべてが正しいです。PHP情報を見ると、pngがImagickでサポートされている形式であることがわかります。私がグーグルで解決策を見つけようとしたとき、それは同じエラーで多くのサイトを返しましたが、ほとんど解決策がありませんでした。私が見つけた唯一の解決策は、サーバーに別のライブラリをインストールすることです。しかし、もしあれば別の解決策をお勧めします。
アドバイスをお願いしますトーマス
module - host-imagickの問題
このモジュールに問題があります。
ローカルサーバーでphp.iniを開くと、リストにモジュールimagickがあります。サイトをWebサーバーに変更しましたが、php.iniではモジュールが表示されません。
Webサーバーを持っている会社と話をしたところ、答えは「モジュールがインストールされていて、これを見せてくれ」です。
しかし、私がこのコードを使用するとき:
私はこれを簡単に受け取ります:
しかし、同じコードが私のローカルホストで機能します。何が問題ですか?(おそらく、拡張子はphp.iniにコメントされていますか?それともコードに問題がありますか?)
ありがとう
php - PDF の寸法と実際のコンテンツの寸法
現在、php の imagick を使用して一部の PDF を画像に変換しています。
これは、PDF に含まれる情報と実際のコンテンツのサイズが異なるためです。
PDF は 612x792 72ppi ドキュメントであると報告されていますが、Mac でプレビューを介して PDF から画像をエクスポートすると、画像は 1651x1275 になります。これはどのように可能ですか?
画像がそれらの寸法で正しく表示されるため、エクスポートは明らかに正しいです。幅と高さが混同された場所で、PDF が単に間違ってエンコードされた可能性がありますか? コードを介してこれを検出するにはどうすればよいですか? また、画像のエクスポートは、サイズが約 2 倍の異なる (はるかに大きい) サイズであり、imagick によって一部の情報が適切に読み取られていないと思われます。
基本的に、実際の PDF コンテンツのサイズを決定する適切な方法があるかどうかを知りたいので、そこからエクスポートされた画像が可能な限り最高の品質になります。
ありがとう!
編集:(コードが追加されました)
使用した pdf は次のとおりです 。 http://www.pantone.com/pages/MYP_mypantone/software_downloader.aspx?f=3
また、これは、identifyImage() 関数からの imagick の出力です。これは、ファイル サイズを見ると少し間違っているようです。
php - PHP-Imagemagick 画像表示
次のようにpdfサムネイルを作成するphpコードがあります。
これはうまく機能しています。しかし、Web ページに画像を表示したい場合は、<img src="">
タグを使用する必要があります。..header("Content-Type: image/jpeg");
を使用して構文とエコー画像から削除する方法はありますか? <img src="">
または、構文を使用して Web ページ内に画像を表示する方法を教えてください。
Windows Vista PC で php5 を使用して apache を実行しています。
php - ImageMagick PNG 画像の背景色を設定する
次のように、PDFファイルのPNGサムネイルを作成するPHPスクリプトがあります。
サムネイルを返しますが、背景は透明です。背景色を白に設定したい(アルファレイヤーを白に変更)。これどうやってするの?
php - phpImagemagickjpg黒の背景
次のようにpdfのjpgサムネイルを作成するためのphpスクリプトがあります。
しかし、結果のjpgの背景は白ではなく黒になります。これを修正するにはどうすればよいですか?
php - サムネイル生成・画像リサイズ
サムネイルの生成に推奨する PHP ライブラリはどれですか? GD(Imagickだけでなく)で動作し、画像を引き伸ばしたり、1つの次元のみが指定されたときにアスペクト比を維持したり、最も重要なことに、画像をトリミングしてサイズ変更したりできるようにする必要があります(サムネイルを生成するとき、それらすべてを、128x128としましょう。その場合、ライブラリに画像をトリミングしてもらいたいです)あなたの推奨事項は何ですか?