<?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();
}
?>
а заставку вынимать, это надо выбрать из всех картинок самую большую по размеру, в осном это и есть заставка
исключение джимм, там картинка со смайлом весит больше всех.
"/tmp/upload/73f4a5226a917c41881330eedc270b0a50139cba00839961427e9f95018840f01/newyear.png"
Лучше вручную скрины к прогам и играм кидать .
А как насчёт скринов к играм от Gameloft? Там ведь всё в pak-архивах и зашифровано.
да в гугле картинок ко всяким играм и прогам немеренно, поищите и поставте себе на скрин
заставку выводить не вижу смысла, там надо искать картинку в архиве (как я представляю себе алгоритм) и найденая картинка может быть разной, мож ваще бред на ней будет...вот если бы у всех игр заставки назывались одинакова, то замутить такое моно было...ведь они могут имееть совершено разные названия?
да да. В некоторых играх и программах вообще нет ни каких заставок в открытом виде в виде картинки.
ага, щас открыл игр 20 и только в трех были картики (в открытом виде)