praegune kellaaeg 19.06.2025 20:51:00
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
atari_
HV kasutaja

liitunud: 09.10.2004
|
27.02.2011 07:13:58
PHP ja GD png watermark |
|
|
On kaks pilti. suur ja väike. Mõlemal on olemas läbipaistvust reguleeriv alpha kanal.
Idee on panna väike suure peale watermarkiks
kui teha nii:
$taust = imagecreatefrompng('mingifail.png'); // suurem pilt
$watermark = imagecreatefrompng('watermark.png'); // väiksem pilt - watermark
imagealphablending($taust, true);
// watermark tausta üles vasakusse nurka
imagecopy($taust, $watermark , 0, 0, 0, 0, imagesx($taust), imagesy($taust));
//salvesta tulemus
imagesavealpha($taust, true);
imagepng($taust, '/watermarkiga_taust.png');
imagedestroy($taust);
|
on tulemuseks see ,et kõik watermarkist paremale ja alla jääv osa on lihtslat must. (Täidab selle alla, kuhu pealmine pilt ei ulatunud, 'tühjaga' mil omakorda pole alpha kanalit ?)
üheks lahenduseks jõudsin selleni, et teha uus tühi pilt - sama suurusega mis alumine. Panna väiksem pilt alguses sinna peale, kõik see ala kus alphat pole, täita alphaga ja siis see vahepealne pilt omakorda panna tausta peale..
ehk:
$taust = imagecreatefrompng('mingifail.png'); // suurem pilt
$watermark = imagecreatefrompng('watermark.png'); // väiksem pilt - watermark
imagealphablending($taust, true);
//uus tühi pilt
$vahepealne = imagecreatetruecolor(imagesx($taust), imagesy($taust));
imagealphablending($vahepealne , false);
imagecopy($vahepealne, $watermark, 0, 0, 0, 0, imagesx($taust), imagesy($taust));
$värv = imagecolorallocatealpha($vahepealne, 255, 255, 255, 127);
imagefill($vahepealne, imagesx($taust), imagesy($taust), $värv); // täida alumine parem äär "alpha värviga"
// watermark tausta üles vasakusse nurka
imagecopy($taust, $watermark , 0, 0, 0, 0, imagesx($taust), imagesy($taust));
//salvesta tulemus
imagesavealpha($taust, true);
imagepng($taust, '/watermarkiga_taust.png');
imagedestroy($taust);
|
..aga siiski jäi kripeldama, et äkki saab kuidagi ilma sellise vahe astmeta?
_________________
 |
|
Kommentaarid: 94 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
80 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
27.02.2011 11:35:59
|
|
|
header('content-type: image/jpeg');
$watermark = imagecreatefrompng('PimpPikoAlp.png');
$pilt="./album/start(2).JPG";
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
$image = imagecreatetruecolor($watermark_width, $watermark_height);
$image = imagecreatefromjpeg($pilt);
$size = getimagesize($pilt);
$dest_x = $size[0] - $watermark_width - 5;
$dest_y = $size[1] - $watermark_height - 5;
$bg_color = imagecolorat($watermark, 1, 1);
imagecolortransparent($watermark, $bg_color);
imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height,30);
imagejpeg($image);
imagedestroy($image);
imagedestroy($watermark); |
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
keevitaja
AM 10 aastat

liitunud: 05.11.2001
|
27.02.2011 15:44:32
|
|
|
atari_, kui sa just ei soovi õppe eesmärgil seda teha, siis kasuta http://phpthumb.gxdlabs.com/
_________________ Hinnavaatlus ei ole koht arvamuse avaldamiseks! |
|
Kommentaarid: 51 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
3 :: |
40 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|