forked from science-ation/science-ation
Make JPG files using GD so it handles transaprency, but keep making the GIF/PNG's from convert binary
This commit is contained in:
parent
d1c607f575
commit
703cc18425
@ -34,22 +34,8 @@ if($_POST['action']=="addimage") {
|
||||
if($_FILES['image']['error']==UPLOAD_ERR_OK) {
|
||||
//make sure its a JPEG
|
||||
$imagesize=getimagesize($_FILES['image']['tmp_name']);
|
||||
if($imagesize[2]==1 || $imagesize[2]==2 || $imagesize[2]==3) // GIF or JPG or PNG
|
||||
{
|
||||
|
||||
/* Here's how to do it with GD, if GD didn't absolutely suck at
|
||||
* resizing an image (thought I'd try it again, Mar30, 2010, still sucks).
|
||||
$image_data = file_get_contents($_FILES['image']['tmp_name']);
|
||||
$image = imagecreatefromstring($image_data);
|
||||
|
||||
$w = imagesx($image);
|
||||
$h = imagesy($image);
|
||||
|
||||
$ratio = $h / $w;
|
||||
$image100 = imagecreate(100, $ratio * 100);
|
||||
imagecopyresampled($image100, $image, 0, 0, 0, 0, 100, $ratio * 100, $w, $h);
|
||||
imagejpeg($image100, "../data/logo-100.jpg");*/
|
||||
|
||||
// GIF or JPG or PNG
|
||||
if($imagesize[2]==1 || $imagesize[2]==2 || $imagesize[2]==3) {
|
||||
|
||||
echo notice(i18n("Creating sized logo files:<br /> logo-100.gif<br /> logo-200.gif<br /> logo-500.gif<br /> logo.gif"));
|
||||
//Make the gif's
|
||||
@ -76,16 +62,40 @@ if($_POST['action']=="addimage") {
|
||||
echo error(i18n("Error creating PNG Image files. Make sure 'convert' binary is in your path, and that 'system' function can be used"));
|
||||
|
||||
echo notice(i18n("Creating sized logo files:<br /> logo-100.jpg<br /> logo-200.jpg<br /> logo-500.jpg<br /> logo.jpg"));
|
||||
//make some PNG's as well
|
||||
system("convert -resize 100 \"".$_FILES['image']['tmp_name']."\" ../data/logo-100.jpg");
|
||||
system("convert -resize 200 \"".$_FILES['image']['tmp_name']."\" ../data/logo-200.jpg");
|
||||
system("convert -resize 500 \"".$_FILES['image']['tmp_name']."\" ../data/logo-500.jpg");
|
||||
system("convert \"".$_FILES['image']['tmp_name']."\" ../data/logo.jpg");
|
||||
|
||||
/*
|
||||
We do the JPG ones with GD, so we can force the transparency layer if its converting from
|
||||
a GIF or PNG that has a transparency.
|
||||
*/
|
||||
$image_data = file_get_contents($_FILES['image']['tmp_name']);
|
||||
$image = imagecreatefromstring($image_data);
|
||||
|
||||
$w = imagesx($image);
|
||||
$h = imagesy($image);
|
||||
|
||||
$ratio = $h / $w;
|
||||
|
||||
$sizes=array(100,200,500);
|
||||
foreach($sizes AS $s) {
|
||||
$image100 = imagecreate($s, round($ratio * $s));
|
||||
// imageantialias($image100,true);
|
||||
imagecolorallocate($image100,255,255,255);
|
||||
imagecolortransparent($image100,0);
|
||||
imagecopyresized($image100, $image, 0, 0, 0, 0, $s, round($ratio * $s), $w, $h);
|
||||
imagejpeg($image100, "../data/logo-$s.jpg",95);
|
||||
imagedestroy($image100);
|
||||
}
|
||||
$imageorig=imagecreate($w,$h);
|
||||
imagecolorallocate($imageorig,255,255,255);
|
||||
imagecolortransparent($imageorig,0);
|
||||
imagecopy($imageorig, $image, 0, 0, 0, 0,$w,$h);
|
||||
imagejpeg($imageorig, "../data/logo.jpg",95);
|
||||
imagedestroy($imageorig);
|
||||
|
||||
if(file_exists("../data/logo-100.jpg") && file_exists("../data/logo-200.jpg") && file_exists("../data/logo-500.jpg") && file_exists("../data/logo.jpg"))
|
||||
echo happy(i18n("JPG Images successfully created"));
|
||||
else
|
||||
echo error(i18n("Error creating JPG Image files. Make sure 'convert' binary is in your path, and that 'system' function can be used"));
|
||||
echo error(i18n("Error creating JPG Image files. You need the GD library available in PHP to make the JPG files"));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user