Просмотр поста

.
Темный_Лорд
<?php
if(!isset($_GET['jar']))exit;
$zip = new ZipArchive;
if ($zip->open(base64_decode($_GET['jar'])) === TRUE) {
if($manifest = $zip->getFromName('META-INF/MANIFEST.MF')){
if (strpos($manifest, 'MIDlet-Icon: ') !== FALSE){
$jad = explode('MIDlet-Icon: ',$manifest);
$icon = str_replace("\n",' ', $jad[1]);
$icon = str_replace("\r",' ', $icon);
$icon = strtok($icon,' ');
$icon = preg_replace('#^/#', NULL, $icon);
}
else $icon='icon.png';
}else exit;
if($image = $zip->getFromName($icon)){
$image = imagecreatefromstring($image);
$width=imagesx($image); 
$height=imagesy($image);
//Если размеры иконки больше 16х16 - уменшаем
if($width>16||$height>16){
$x_ratio=16/$width;
$y_ratio=16/$height;
if(($width<=16)&&($height<=16)){
$tn_width=$width;
$tn_height=$height;
}elseif(($x_ratio*$height)<16){
$tn_height=ceil($x_ratio*$height);
$tn_width=16;
}else{
$tn_width=ceil($y_ratio*$width);
$tn_height=16;
}
$dst=ImageCreate($tn_width,$tn_height);
imagecopyresampled($dst, $image, 0, 0, 0, 0, $tn_width,$tn_height,$width,$height);
$image = $dst;
}
}else{
//эта иконка будеет, если в архиве нет иконки
$image = imagecreatefrompng('my_icon.png');
}
header('Content-type: image/png');
ImagePng($image);
ImageDestroy($image);
$zip->close();
}
?>
а заставку вынимать, это надо выбрать из всех картинок самую большую по размеру, в осном это и есть заставка исключение джимм, там картинка со смайлом весит больше всех.