0
私はこのスクリプトを使用して、ユーザーが選択した別の色に黒または白の色を置き換えますが、特定の色(紫色の背景緑色の筆記具)で動作します。 私は何をすべきか理解していませんか? は、ここでそれを見る - http://marijasorganicpantry.com.au/imagephp.phpphpの色はイメージに置き換えます
<?php
ob_start();
\t $txtcolor=$_REQUEST['text1'];
\t $r1txt=hexdec(substr($txtcolor,0,2));
$g1txt=hexdec(substr($txtcolor,2,2));
\t $b1txt=hexdec(substr($txtcolor,4,2));
\t
\t $backcolor=$_REQUEST['back1'];
\t $r1back=hexdec(substr($backcolor,0,2));
$g1back=hexdec(substr($backcolor,2,2));
\t $b1back=hexdec(substr($backcolor,4,2));
\t $imgname="demo_the-crown-prints_work-hard_5x7.jpg";
\t
\t $im = imagecreatefromjpeg($imgname);
\t $w = imagesx($im);
\t $h = imagesy($im);
\t $gd = imagecreatetruecolor($w,$h);
\t imagecopyresampled($gd, $im, 0, 0, 0, 0, $w, $h, $w, $h);
\t imagefilter($gd, IMG_FILTER_COLORIZE,$r1txt,$g1txt,$b1txt);
\t for($x=0;$x<$w;$x++)
\t {
\t \t for($y=0;$y<$h;$y++)
\t \t \t {
\t \t \t \t $rgb = imagecolorat($gd, $x, $y);
\t \t \t \t $r = ($rgb >> 16) & 0xFF;
\t \t \t \t $g = ($rgb >> 8) & 0xFF;
\t \t \t \t $b = $rgb & 0xFF;
\t \t \t \t
\t \t \t \t if ($r==255 and $g==255 and $b==255)
\t \t \t \t { \t
\t \t \t \t $pixelColor=imagecolorallocatealpha($gd,$r1back,$g1back,$b1back,10);
\t \t \t \t imagesetpixel($gd,$x,$y,$pixelColor); \t
\t \t \t \t }
\t \t \t }
\t }
\t
imagejpeg($gd,NULL,100);
$outputBuffer = ob_get_clean();
$base64 = base64_encode($outputBuffer);
echo '<a id="downloadimage" style="text-decoration:none;" download>
\t <img id="image2" width=150 height=250 src="data:image/jpeg;base64,'.$base64.'" />
\t <li style="padding-top:7px;textalign:center;display:block;border-radius:10px;background-color:royaleblue;height:30px;width:100px;">download</li></a>'; \t
?>
感謝imagejpegとimagepng間の品質の違いを見てみましょうするためにファイルに結果が保存されている、私は試してみて、画像真の黒を作るためにグレースケールの大部分を取り出してきました私はまだ白い色で表示されているので、画像に灰色の斑点が残っていますが、余分なグレーの色をコードに追加して変換する方法はありますか?私は($ r == 255と$ g == 255と$ b == 255 || $ r == 212と$ g == 212と$ b == 212 || $ r == 224と$ g == 224、$ b == 224)、コードで何が問題になるのでしょうか? – user2530616
元の画像が白黒であると仮定したい場合は、if($ r!== 0 || $ g!== 0 || $ b!== 0)のようなことをやろうとしてください。あなたのコードでは可能な組み合わせをたくさん忘れていました;) – Davide
ズームインしたときに灰色の点がたくさん見えます。その値を取得してそれらをすべて追加すれば、いくつかのスポットを取り除いてください:)どのようにコードに色合いを追加できますか?私は詰まっています – user2530616