logo
09.01.2020 13:33
1
Ahoj,

mohli byste mi prosím poradit ohledně toho, zda se dá v PHP při rotaci obrázku docílit odstranění transparentnosti? Jedná se o PNG obrázek, který má průhledné pozadí.

Postup je takový, že na server se nahraje obrázek, co je kódovaný v base64. Ten se dekóduje a uloží se jako originál. Sem je to bez problému.

Našel jsem kód níže, který sice obrázek otočí tak jak má, ale ta definice výplně je v podstatě pro to volné místo, které se při rotaci vytvoří. Takže se to netýká toho základního pole pod daným obrázkem, kde bych tu pruhlédnost potřeboval odstranit. Jde to vůbec?

Kód:
<?php

$filename = 'image.png';
$im = imagecreatefrompng($filename);
$transparency = imagecolorallocatealpha( $im,255,0,255,50);
$rotated = imagerotate( $im, 45, $transparency, 1);
imagealphablending( $rotated, false );
imagesavealpha( $rotated, true );

imagepng($rotated, 'otoceni.png');

Tohle je výsledek - ale o ten mi nejde. Potřebuji tu barvu dostat i pod "jádro obrázku".
Název:  nepru1578571917.png
Zobrazení: 168
Velikost:  206,9 KB

Co se právě děje na Webtrhu?

09.01.2020 14:16
2
Transparentnost pomocou GD odstranis tak, ze si vytvoris obrazok s bielym (alebo inym) pozadim s rovnakymi rozmermi ako ten transparentny obrazok.
Nasledne oba zlucis do jedneho. Kod najdes napr. tu:
https://stackoverflow.com/questions/...olor-in-images
09.01.2020 17:31
3
Díky moc :)