Průhlednost obrázku po IMAGE::resize()
- Teapack666
- Člen | 9
Vím že to už tu bylo několikrát, ale ani jedno z řešení mi nepřineslo úspěch…
Vytvářím thumb nahrávaného obrázku, ale po IMAGE::resize() se mi
uloží průhledný obrázek s černým pozadím.
Zkoušel jsem toho už mraky a jsem v koncích… můžete mi někdo poradit
? :)
public function makeThumb($name){
//$image = new MImage( imagecreatefromstring(file_get_contents('../www/images/gallery/'.$name)));
$image = Image::fromFile('../www/images/gallery/'.$name);
$image->savealpha(TRUE);
if($image->height < $image->width){
$image->resize(150, NULL, 100, Image::PNG);
}
else{
$image->resize(NULL, 150, 100, Image::PNG); //Zmensovani obrazku se zachovanim pomeru stran
}
$image->save('../www/images/gallery/thumbs/'.$name);
}
- David Grudl
- Nette Core | 8239
saveAlpha ani alphaBlending nastavovat není potřeba, ale máš nějaké divné parametery v resize(), mrkni do dokumentace.
Nevím, do jakého formátu to ukládáš, ale poloprůhlednost podporuje pouze truecolor PNG.
- hlupec
- Backer | 8
Ahoj, vyresili jste to nejak? Mam stejny problem, ale az od te chvile, kdy jsem zacla pouzivat nette 2.4. Respektive take PHP 7.0 – takze nemuzu uplne presne urcit, ktery z tech upgradu to provedl.
Zkousela jsem to s dvema ruznyma PNGckama, obe dopadly stejne (cerne pozadi). S obrazkem provadim toto:
Image::fromFile($filepath)->resize($width, $height, Image::EXACT)->save($preview);
Jo, tak ted jsem si to jste zkusila na PHP 7 ale s nejakou archaickou verzi Nette (2.0.6) a tam to funguje spravne.