Ich habe mal eine Funktion geschrieben welche alle PNG Dateien eines Pfades in das WebFront übliche 32x32 Format wandelt.
Werden kleinere Formate als 32x32 hochgerechnet sieht das dann natürlich nicht so toll aus.
Was muß gemacht werden?
- Nur die beiden Pfadangaben anpassen
//Pfad in dem sich die PNG Dateien befinden
$pfad_alt = „C:/IP-Symcon_Ver2/media/“;
//Pfad in den die PNG 32x32 kopiert werden sollen
$pfad_neu = „C:/IP-Symcon_Ver2/webfront/user/icons/fixed/“;
- Script starten
Fertig.
$pfad_alt = "C:/IP-Symcon_Ver2/media/"; //Pfad in dem sich die PNG Dateien befinden
$pfad_neu = "C:/IP-Symcon_Ver2/webfront/user/icons/fixed/"; //Pfad in den die PNG 32x32 kopiert werden sollen
if ( !(file_exists($pfad_alt)) or !(file_exists($pfad_neu)) )
{
echo "Pfad existiert nicht";
return;
}
$dir = array_slice(scanDir($pfad_alt), 2);
$i = 0;
foreach($dir as $filename)
{
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if($ext != "png") unset($dir[$i]);
$i++;
}
foreach($dir as $filename)
{
resizePNG($pfad_alt.$filename,$pfad_neu.$filename, 32, 32);
}
//------------------------------------------------------------------------------
function resizePNG($pfad_alt, $pfad_neu, $h_neu, $b_neu)
{
$png_info = getimagesize($pfad_alt);
$b_alt = $png_info[0];
$h_alt = $png_info[1];
$png_alt = imagecreatefrompng($pfad_alt);
$png_farbtiefe = imagecolorstotal($png_alt);
if($png_farbtiefe == 0 || $png_farbtiefe > 255)
{
$png_neu = imagecreatetruecolor($b_neu, $h_neu);
}
else
{
$png_neu = imagecreate($b_neu, $h_neu);
}
imagealphablending($png_neu, false);
imagecopyresampled($png_neu, $png_alt, 0, 0, 0, 0, $b_neu, $h_neu, $b_alt, $h_alt);
imagesavealpha($png_neu, true);
imagepng($png_neu, $pfad_neu);
imagedestroy($png_alt);
imagedestroy($png_neu);
return true;
}
//------------------------------------------------------------------------------