Программно ужать *.png
UPD. Хотя вопрос наверное прикол. PNG же без потери качества жмет. Либо цветов надо меньше делать, либо размер уменьшать, либо формат другой выбирать.
UPD2. Анне. Есть что-то и про PNG. Из документации к convert из imagemagick (http://www.imagemagick.org/script/command-line-options.php?ImageMagick=6adtbgnv423rg3ta7fpavkq2q1#quality):
-quality value
JPEG/MIFF/PNG compression level.
For the MNG and PNG image formats, the quality value sets the zlib compression level (quality / 10) and filter-type (quality % 10). The default PNG "quality" is 75, which means compression level 7 with adaptive PNG filtering, unless the image has a color map, in which case it means compression level 7 with no PNG filtering.
For compression level 0, the Huffman-only strategy is used, which is fastest but not necessarily the worst compression.
If filter-type is 4 or less, the specified PNG filter-type is used for all scanlines:
0: none
1: sub
2: up
3: average
4: Paeth
If filter-type is 5, adaptive filtering is used when quality is greater than 50 and the image does not have a color map, otherwise no filtering is used.
If filter-type is 6, adaptive filtering with minimum-sum-of-absolute-values is used.
КВАЛИТИ PNG, ПРИПАРКИ МЕРТВЫМ И ДРУГИЕ ЦЕННЫЕ И ПОЛЕЗНЫЕ ТОВАРЫ
Ну то есть цифра десятков ни на что не влияет, тащемта, имхо.
там как-бы можно организовать потери и сжать сильнее хотя менее качественно
Есть подозрение, что топикстартеру сгодится и сжатие в JPG.
<?php
$filedata = file_get_contents('http://bus.cpark.ru/BusMap.ashx');
header('Content-type: image/png');
echo resizeImg($filedata, 280, 280);
function resizeImg( $filedata, $max_width, $max_height )
{
$src = imagecreatefromstring($filedata);
$type[0] = imagesx($src);
$type[1] = imagesy($src);
if( $type[0] > $max_width or $type[1] > $max_height )
{
// Размеры исходного изображения
$width = $type[0];
$height = $type[1];
if($width > $max_width )
{
$new_width = $max_width;
$height = $new_height = ceil($new_width/$width*$height);
$width = $new_width;
}
if( $height > $max_height )
{
$new_height = $max_height;
$new_width = ceil($new_height/$height*$width);
}
$dst = ImageCreateTrueColor($new_width, $new_height);
$white = imagecolorallocate($dst, 255, 255, 255);
imagefill($dst,0,0,$white);
imagecopyresampled($dst, $src, 0, 0, 0, 0, $new_width,$new_height,$type[0],$type[1]);
imagetruecolortopalette($dst, true, 127);
// Занесение в переменную картинки
ob_start ;
imagepng( $dst ) ;
$img = ob_get_contents ;
ob_end_clean ;
return $img;
ImageDestroy($dst);
}
else
return $filedata;
ImageDestroy($src);
}
?>
попробуй в lzw формате ужать, он самый легкий. я както имаджмаджиком жал во все доступные фоматы тестувую какуюто картинку, получалось что самый легкий это *.lzw
ага, следующая тема "Как заставить мобильный браузер отображать *.lzw картинки?"
смотри тут темку поблизости "создание/соединение gif-картинок"
Дельное предложение и для увеличения юзабилити и для облегчения трафика и вообще.
http://.cre8.ru/bus.php
<?
$img = imagecreatefromstring (file_get_contents ('http://bus.cpark.ru/BusMap.ashx';
$newimg = imagecreatetruecolor (280, 280);
imagecopyresampled ($newimg, $img, 0, 0, 0, 0, 280, 280, 560, 560);
header ("Content-type: image/jpeg");
imagejpeg ($newimg);
?>
Для мобильных клиентов вообще не надо картинок генерить - дайте быстрое API с координатами в формате json для разработчиков и приложение для отслеживания автобусов они сделают сами.
С блекджеком и шлюхами
Оставить комментарий
ilyab88
Есть веб-страница (не моя)http://bus.cpark.ru/BusMap.ashx
, на которой отображается сгенерированный *.png файл с текущим положением автобусов. Этот файл весит 313 Кб.
Я хочу сделать веб-страничку, которая отображала бы эту картинку в уменьшенном виде в пиксельных размерах, пониже качеством и весила бы 30 Кб.
Т.е., обработка *.png делается на сервере, а клиенту выдается уменьшенная картинка.
Эту картинку можно было бы удобно смотреть с мобильного телефона.
Вопрос, как это лучше сделать.