JPG не поддерживает прозрачность.
Тем не менее, вы можете экспортировать изображение с прозрачными областями, например, из GIMP. В этом случае прозрачные области будут отображаться либо черным, либо белым цветом в вашем браузере, проводнике Windows или другом программном обеспечении.
Я регулярно получаю такие файлы, которые мне нужно обработать и предоставить в нескольких меньших форматах. Я делаю это с помощью PHP-скрипта, используя библиотеку GD. Проблема в том, что непредсказуемо, будут ли эти области черными или белыми в обработанных версиях. Даже белый фон может превратиться в черный.
Поэтому мой вопрос заключается в том, можно ли каким-то образом обнаружить эту "прозрачную" область в GD и назначить ей определенный цвет.
См., Например, эти два изображения:
http://www.bilbil.com/9156-thickbox_default/bus.jpg
http://bilbil.com/img/p/9/1/5/6/9156.jpg
В данный момент я использую этот код:
$srcfile = "9158.jpg";
$dir ="/test/";
list($width, $height, $imgtype, $attr) = @getimagesize( $dir.$srcfile );
$src = imagecreatefromjpeg($dir.$srcfile);
$newheight=$newwidth = 800;
$img = imagecreatetruecolor ( $newwidth , $newheight );
$white = imagecolorallocate($img, 255, 255, 255);
imagefill($img, 0, 0, $white);
imagecopyresampled($img, $src, ($newwidth-$width)/2, ($newheight-$height)/2, 0, 0, $width, $height, $width, $height);
if(!imagejpeg($img, $dir.'test.jpg', 97))
echo("Error creating testimage");