Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

GD - transparencija kroz imagecopyresampled za PNG

[es] :: PHP :: GD - transparencija kroz imagecopyresampled za PNG

[ Pregleda: 1451 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.adsl.beotel.net.



+19 Profil

icon GD - transparencija kroz imagecopyresampled za PNG19.12.2007. u 17:46 - pre 199 meseci
Dali je neko radio resize-ovanje transparentnog PNG-a ?

Imam problem s očuvanjem transparencije tokom poziva funkcije imagecopyresampled.
Naime rezultat vrlo liči na ono što treba dobiti ali kad ga prelepim preko neke druge slike pojave se šrafure na transparentnom delu originala.
Pregledom rezultata u fotošopu ti pixeli se ne vide (visoka transparentost) ali kad pređete pipetom preko slike videće se u onom "Info" prozoru.

Znači kao smetnje (šum) u slici. Iako su vidljivo zanemarljive ipak se pri kasnijem "lepljenju" jasno prikažu.
Izgubih ceo dan na ovo, vidi li neko gde grešim?

Code:

error_reporting(E_ALL);
$width= 126;
$height= 110;

$wm_src = imagecreatefrompng("wm.png");
if(!$wm_src) die('Invalid image!');
$s1= imagesx($wm_src);
$s2= imagesy($wm_src);
   
$wm_small= imagecreatetruecolor($width, $height);

$trans = imagecolorallocate($wm_small,0,0,0);
ImageColorTransparent($wm_small, $trans);
imagefilledrectangle($wm_small, 0, 0, $width, $height, $trans);
imagealphablending($wm_small, false);
imagesavealpha($wm_small, true);

imagecopyresampled($wm_small,$wm_src,0,0,0,0,$width,$height,$s1,$s2);

//snimi skaliran wm i prikaži ga 
header("Content-type: image/png");
imagepng($wm_small, 't.png'); 
imagepng($wm_small);

ImageDestroy($wm_src);
ImageDestroy($wm_small);

Prikačio sam primer png8 sličice.
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
Prikačeni fajlovi
 
Odgovor na temu

agvozden
Aleksandar Gvozden
founder
Info-G
Beograd

Član broj: 37813
Poruke: 1123
*.ptt.yu.

Sajt: www.gvozden.info


+68 Profil

icon Re: GD - transparencija kroz imagecopyresampled za PNG20.12.2007. u 11:11 - pre 199 meseci
Pokusaj ovako:

Code:

$source = imagecreatefrompng($image);
$colorTransparent = imagecolortransparent($source);
$dest = imagecreate($new_width, $new_height);
imagepalettecopy($dest, $source);
imagefill($dest, 0, 0, $colorTransparent);
imagecolortransparent($dest, $colorTransparent);


i na kraju

Code:
imagecopyresized($dest, $source, 0, 0, 0, 0, $new_width, $new_height, $img_width, $img_height);


eventualno mozes i ovako da je eksportujes

Code:
imagejpeg($dest, $image, 100);

 
Odgovor na temu

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.adsl.beotel.net.



+19 Profil

icon Re: GD - transparencija kroz imagecopyresampled za PNG21.12.2007. u 07:15 - pre 199 meseci
Sa imagecopyresized bi verovatno radilo kako treba, pitao sam za imagecopyresampled.

"The quieter you become, the more you are able to hear."
Blog | PowerCMS
 
Odgovor na temu

[es] :: PHP :: GD - transparencija kroz imagecopyresampled za PNG

[ Pregleda: 1451 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.