max*_*max 4 php google-maps image
我想将 Google 地图图像保存到我的服务器。下面是我用来获取和保存这些图像的代码,以及用于创建缩略图的代码。我为此使用 CodeIgniter。
//saving original image on server
$post = $_POST;
$file = file_get_contents("http://maps.google.com/maps/api/staticmap?size=".$post['w']."x".$post['h']."&sensor=false&markers=color:red|size:mid|".$post['lt'].",".$post['lg']."&&zoom=".$post['z']);
$filename = 'map_'.uniqid().'.png';
$name = './assets/images/upload/'.$filename;
file_put_contents($name, $file);
// creating thumbnail
$config_manip = array(
'image_library' => 'gd2',
'source_image' => './assets/images/upload/'.$filename,
'new_image' => './assets/images/upload/thumb_'.$filename,
'maintain_ratio' => false,
'quality' => "10%",
'width' => 480,
'height' => 480
);
$this->load->library('image_lib', $config_manip);
$this->image_lib->resize();
Run Code Online (Sandbox Code Playgroud)
我的问题是生成的缩略图的尺寸比原始图像大得多。用于比较:
为什么缩略图比原图大?
主要区别在于您的原始图像包含调色板,而缩略图则不包含。因此,缩略图不必为每个像素存储 8 位索引到调色板中,而是必须为每个像素存储 3 个 8 位真颜色。您需要一种方法来强制使用调色板缩略图 - 即在输出之前使用imagecreate()而不是imagecreatetruecolor()或调用。imagetruecolortopalette()
下面是对每个文件的分析:
根据您选择包含在调色板中的颜色数量,您将获得不同的文件大小,如下所示:
Colours Filesize (bytes)
======= ================
10 3,380
16 12,199
32 12,415
64 36,581
128 36,825
256 42,013
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1372 次 |
| 最近记录: |