問題タブ [gd2]
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 での imagecopyresampled - 事前に乗算されたアルファの問題
アルファ値を使用するバッファの imagecopyresampled に問題があります。どうやら、アルゴリズムはフィルタリングの前にピクセルのアルファ値を事前に乗算します。これにより、オブジェクトの周りに黒い境界線が生じます。
再現する手順:
RGB部分が完全に白で、アルファ部分の黒い背景に(アンチエイリアス処理された!!)白い円(正方形ではなく円を使用してください!)を持つ画像を撮ります(したがって、アルファ部分はほとんど完全に白と完全に黒のピクセル、およびアンチエイリアシングによる円の境界上のいくつかのグラデーション ピクセル - これは、入力画像が事前に乗算されていないことを意味します - 画像の RGB 部分が完全に白であるため、ストレート/マット化されていません)。
imagecopyresampled を使用して画像を半分に縮小します
完全に白い画像の上に結果を構成する
私が期待するもの:完全に白い画像
私が得るもの:円の輪郭の周りの灰色がかった境界線
これは、スケールダウン アルゴリズム内で事前に乗算されたアルファが原因であると確信しています (アルゴリズムは、新しい RGB 値を計算するために、ピクセルのアルファ値とその RGB 値を乗算します。したがって、白いピクセルはグレーになります)。
誰かがこれの回避策を知っていますか?
php - 画像の MIME タイプ「application/octet-stream」の処理方法は?
その場でURL画像のサムネイルを作成する機能があります!この関数には常にタイプ jpg の画像を渡しますが、「.jpg」拡張子の画像を渡すと問題が発生します。しかし、その MIME タイプを取得しようとすると、「application/octet-stream」であることがわかりました。このphp ページでは、この MIME タイプは次のいずれかを参照しています。
IMAGETYPE_JPC,IMAGETYPE_JPX,IMAGETYPE_JB2
この MIME タイプを処理するために関数を変更する必要があるのは??
お知らせ^^^^^^
ruby-on-rails - Carrierwave GD2 画像操作
Carrierwave を使用しており、GD2 で画像を処理 (トリミング/サイズ変更) したいと考えています。ImageMagick と RMagic は機能面では優れていますが、リソースが多すぎます。
色々と調べてみましたが、良い手がかりが見つかりませんでした。提案をいただければ幸いです。
php - PHPで画像オンフライにテキストを書く方法は?
テキストを使って「オンフライ」の画像を作りたいです。PHPで可能ですか?私はこれを試していますが、出力がありません。誰かが私のコードを見ることができますか?
私はそれを作るためにcodeigniterを使用しています。
ありがとうございました
php - アルファ透明度を備えたpngの上にPHPマージjpeg
pngの後ろにjpegを配置しようとしています-pngはアルファ透明度を持っています。
前景の画像はここにあります:http: //peugeot208.srv.good-morning.no/images/marker-shadow.png
後ろの画像はFacebookのプロフィール画像です-通常は次のようになります: https ://graph.facebook.com/100000515495823/picture
結果の画像は透明度を失い、代わりに黒になります:http: //peugeot208.srv.good-morning.no/libraries/cache/test.png
これは私が使用するコードです:
imagealphablending($ newCanvas、false);を有効にすると、結果は正しくなります(マーカーの中央の穴は透明になります)が、背後の画像は消えます。
これに光を当てることができますか?:-)
ありがとう!
編集:解決策を見つけました
私は少しいじって、このコードに行き着きました-原点はcreateimagetruecolorではなく、テンプレートから作成された画像です-これは透明なpngです。
これで機能します-結果は適切に透過的です。理由はよくわかりません。なぜだかわかりましたか?
fbimage.php
更新:次のコードを確認してください。 ここで結果を見つけることができます:http://peugeot208.srv.good-morning.no/images/marker.php ご覧のとおり、背景はまだ黒です。
php - PHPにGD2のワードラップ関数はありますか?
人。
画像のGD2テキストに少し問題があります。私はすべてが機能しているので、画像内に折り返すことができるテキストを画像に追加しようとしています。
たとえば、幅200pxの画像と大きなテキストブロックがあります。テキストを使用するimagettftext()
と、画像の境界を越えて、実際には部分的なテキストのみが表示されます。Zendのテキスト折り返し機能を使用しようとしましたが、ここで常に正確な結果が得られるとは限りません(機能しないと言っているわけではなく、この場合のみです)。
テキストが収まる幅のボックスを設定するための専用のGD2メソッドはありますか?それがそのボックスの境界に当たった場合は、新しい行に続く必要がありますか?
php - PHP イメージの作成に失敗しました
を使用して画像を作成するスクリプトを作成しましたimagecreatetruecolour()
。次に、関数を使用して画像に文字を追加しimagettftext()
ます。他のいくつかの変更が行われ、最後に白い背景が削除され、PNG ファイルとして保存されます。全体が for ループに入るため、250 個の画像が作成されます。
私が直面している問題は、時々 (250 のうち 10-15 程度) 画像を作成した後に何もしないように見えるため、出力が白い正方形または黒い正方形 (正しいサイズ) になることです。
sleep()
それらを作成しようとしているのが速すぎるかどうかを確認するために追加しようとしましたが、問題は解決しません。何が原因なのか誰にも分かりますか?PHPのメモリ制限は128MBなので、それが問題だとは思いません(また、ランダムな場所で発生し、最初の画像でさえ発生する場合があります)。
これは以前に投稿されたことがないことは確かですが、公平を期すために、何を探しているのか見当がつかなかったので、間違った場所を探していた可能性があります.
//編集
悲しいことに、スクリプト全体をここに追加することは許可されていませんが (会社のポリシーで何とか)、一部をアップロードすることはできます。さらに調査した後、文字を選択しないように絞り込みました(いくつかの変数をcsvに出力しましたが、この列は機能していない他の変数では空白でした)
したがって、その部分を処理するコードは次のとおりです。
そして、すべての画像をまとめる部分:
エラーログも空です。
ありがとう。コードを投稿した直後にエラーを見つけました。どこから 55 を取得したかはわかりませんが、はい、それは正しい順序です - というか文字ですが、いくつかはランダムな場所で動かなくなっています。-
php - gd2 による画面効果
gd2 で PHP を使用して、スクリーン効果 (Photoshop と同様) を使用して別の写真に透かしを挿入することは可能ですか? PHPマニュアルとGoogleでそのようなものを探していましたが、imagelayereffectとimagefilter関数しか見つかりませんでした。これらには画面効果がありません
codeigniter - file_put_contents で特定のエラーが発生する
CodeIgniter を使用してプロジェクトを開発しています。リモート サーバーからイメージをダウンロードしようとすると、次のエラーが表示されます。
エラー:
エラーの原因となるコード:
addImageWhiteSpaces:
このエラーが表示されますが、イメージはダウンロード中です。しかし、上記のエラーが発生するため、イメージをダウンロードし、残りのコードに進むことができません。考えられる解決策や理由はすべて、私にとっては金庫です。どうもありがとう。
php - アルファチャンネルのphp gdの代替?
何らかの理由で、php gd のアルファ チャネルは 0 ~ 127 の範囲に制限されていますが、rgba では 0 ~ 255 であるはずです。
ここで、アルファが 127 より大きい色を作成すると (たとえば、imagecolorallocatealpha を使用して)、代わりにデフォルトの黒色が作成されます...
アルファ チャンネルをフルに活用した写真を作成する別の方法はあるのでしょうか。なぜgdがアルファチャンネルを7ビットに切り詰めてから、8ビット/チャンネルでpngを出力するのか、私の理解を超えています。
ピクセルごとにpngを出力することも検討します。