ホームページ > バックエンド開発 > PHPチュートリアル > PHP が gd ライブラリ関数を使用してウォーターマークを埋め込んだ後、画像が小さくなります

PHP が gd ライブラリ関数を使用してウォーターマークを埋め込んだ後、画像が小さくなります

WBOY
リリース: 2016-06-23 14:16:33
オリジナル
855 人が閲覧しました

皆さん:
setWater 関数を使用して JPG 画像 (写真) にウォーターマークを埋め込みました。ピクセル数は変わりませんが、合計サイズは大幅に小さくなりました (1.4M から約 350k)。 !これは、画像内の各ピクセルの豊かさや色の変化に影響を与える関数である必要があります。 。イメージコピーですか?それともimagecreatetruecolorですか?
アドバイスをお願いします! ! ! !埋め込み透かし機能は以下に掲載されています:
//埋め込み透かしプログラム、テキスト透かしと画像透かしを別々に追加してください。 ! !
function setWater($imgSrc,$markImg,$markText,$TextColor,$markPos,$fontType,$markType,$fontSize)
{
/*
パラメーターの説明:

$imgSrc: ターゲット画像、相対ディレクトリ アドレスを持つことができます,
$markImg: 透かし画像。相対ディレクトリ アドレスを持つことができ、PNG および GIF 形式をサポートします。透かし画像が実行可能ファイルの mark ディレクトリにある場合は、mark/mark.gif のように書き込むことができます。
$markText: 透かしテキスト画像に追加されます
$TextColor: 透かしテキストのフォントの色
$markPos: 画像の透かしが追加される位置、値の範囲: 0~9
0: ランダムな位置、1~8 の間の位置をランダムに選択します
1 : 左上 2: 中央上 3: 右上 4: 中央左
5: 画像中央 6: 右中央 7: 左下 8: 中央下 9: 右下
$fontType: 特定のフォント ライブラリ、相対ディレクトリ アドレスを持つことができます
$markType: 画像にウォーターマークを追加する方法。img は画像としてウォーターマークを追加することを意味し、text はテキストとしてウォーターマークを追加することを意味します
*/
$srcInfo = @getimagesize($imgSrc)
$srcImg_w = $srcInfo[0] ];
$srcImg_h = $srcInfo[1];

switch ($srcInfo[2])
ケース 1:
$srcim =@imagecreatefromgif($imgSrc);
if($srcim==false)
echo 「Open Failed!」 ";
break; markimginfo $ markimginfo = $ markimginfo [0];ケース 1:
$markim = @imagecreatefromgif($markImg);
$markim =@imagecreatefromjpeg($markImg)
if($markim==) false)
echo "オープンに失敗しました!"
false)
echo "オープンに失敗しました!" ;
}
$log ow $markType,"text"))
{
if(!empty($markText))
{
if(!file_exists($fontType))
//print_r("& lt;/ br> こんにちは! フォントタイプがありません" );
return; fontType,$markText);
$logow = max($box[2], $box[4]) - min($box[0], $box[6] );
$logoh = max($box[1], $box[3]) - min($box[5], $box[7])

if($markPos == 0)
}
switch($markPos) 4; $y = +5;        ケース 3:
$x = $srcImg_w - $logow - 105;
$y = +85;
休憩。
ケース 4:
$x = +5;
$y = ($srcImg_h - $logoh) / 2;
休憩。
ケース 5:
$x = ($srcImg_w - $logow) / 2;
$y = ($srcImg_h - $logoh) / 2;
休憩。
ケース 6:
$x = $srcImg_w - $logow - 5;
$y = ($srcImg_h - $logoh) / 2;
休憩。
ケース 7:
$x = +5;
$y = $srcImg_h - $logoh - 5;
休憩。
ケース 8:
$x = ($srcImg_w - $logow) / 2;
$y = $srcImg_h - $logoh - 5;
休憩。
ケース 9:
$x = $srcImg_w - $logow - 5;
$y = $srcImg_h - $logoh -5;
休憩。
デフォルト:
die("この位置はサポートされていません"); 
終了します。
}

$dst_img=imagecreatetruecolor($srcImg_w, $srcImg_h); //建立空白背景、真彩色写真

imagecopy ( $dst_img, $srcim, 0, 0, 0, 0, $srcImg_w, $srcImg_h);

if(!strcmp($markType,"img"))
{
imagecopy($dst_img, $markim, $x, $y, 0, 0, $logow, $logoh);
imagedestroy($markim);
}

if(!strcmp($markType,"text"))
{
//print_r("
hello ! text2");
$rgb = explode(',', $TextColor);
$color = imagecolorallocate($dst_img, $rgb[0], $rgb[1], $rgb[2]);
imagettftext($dst_img, $fontSize, 0, $x, $y, $color, $fontType,$markText);
}

switch ($srcInfo[2])
{
case 1:
imagegif($dst_img, $imgSrc); 
ブレーク;ケース2:stelo spul out out out out ss s s - – ‐ ‐ greasから
まで使用して使用して使用して使用します。 (解決策)

imagejpeg
Chapter 3 つのパラメータで設定された画像の品質は、デフォルトでは最適ではありません。これが理由ですか?

はい、アドバイスありがとうございます!インターネット上にある機能については、それぞれの機能は問われず、利用できれば問題ありません。どうもありがとうございます!

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート