TPABKA
Новичок
Качество водяного знака [WaterMark]
Есть данный код, но он портит картинки, как этого можно избежать? есть ли вообще нормальные скрипты Водяных знаков? Или это проблема php, ведь $jpegQuality = 100? (php 4)
PHP:
WaterMark (Водяной знак)
PHP:
--------------------------------------------------------------------------------
<?php
// Для наложения используется ImageCopyMerge
function waterMark($fileInHD, $wmFile, $transparency = 50, $jpegQuality = 100, $margin = 5) {
$wmImg = imageCreateFromGIF($wmFile);
$jpegImg = imageCreateFromJPEG($fileInHD);
// Water mark random position
$wmX = (bool)rand(0,1) ? $margin : (imageSX($jpegImg) - imageSX($wmImg)) - $margin;
$wmY = (bool)rand(0,1) ? $margin : (imageSY($jpegImg) - imageSY($wmImg)) - $margin;
// Water mark process
imageCopyMerge($jpegImg, $wmImg, $wmX, $wmY, 0, 0, imageSX($wmImg), imageSY($wmImg), $transparency);
// Overwriting image
ImageJPEG($jpegImg, $fileInHD, $jpegQuality);
}
waterMark('myImage.jpg','waterMark.gif');
?>
<?php
// Для наложения используется ImageAlphaBlending
$photoImage = ImageCreateFromJPEG('photo.jpg');
ImageAlphaBlending($photoImage, true);
$logoImage = ImageCreateFromPNG('logo.png');
$logoW = ImageSX($logoImage);
$logoH = ImageSY($logoImage);
ImageCopy($photoImage, $logoImage, 0, 0, 0, 0, $logoW, $logoH);
ImageJPEG($photoImage); // output to browser
ImageDestroy($photoImage);
ImageDestroy($logoImage);
?>