imagick获取图片的大小bug

<?

php
/*
imagick的获取图片的高度和宽度函数有问题,使用GD函数可获得正确结果
gd函数
array getimagesize ( string $filename [, array &$imageinfo ] )
getimagesize() 函数将測定不论什么 GIF,JPG,PNG,SWF。SWC。PSD。TIFF,BMP,IFF。JP2,JPX。JB2。JPC,XBM 或 WBMP 图像文件的大小并返回图像的尺寸以及文件类型和一个能够用于普通 HTML 文件里 IMG 标记中的 height/width 文本字符串。

返回一个具有四个单元的数组。

索引 0 包括图像宽度的像素值,索引 1 包括图像高度的像素值。

索引 2 是图像类型的标记:1 = GIF。2 = JPG,3 = PNG,4 = SWF,5 = PSD。6 = BMP。7 = TIFF(intel byte order)。8 = TIFF(motorola byte order)。9 = JPC。10 = JP2,11 = JPX。12 = JB2,13 = SWC,14 = IFF,15 = WBMP。16 = XBM。这些标记与 PHP 4.3.0 新加的 IMAGETYPE 常量相应。

索引 3 是文本字符串。内容为“height="yyy" width="xxx"”。可直接用于 IMG 标记。
*/
$new_filename = '14054076904103.gif';

/*   使用imagick的函数处理   */
$imagick = new Imagick($new_filename);
$real_width = $imagick->getImageWidth();
$real_height = $imagick->getImageHeight();
error_log('real_width: '.$real_width.'   real_height: '.$real_height);     //

$srcImage = $imagick->getImageGeometry();
error_log('real_width: '.$srcImage["width"].'   real_height: '.$srcImage["height"]);

/*   使用GD的函数处理   */
$image_size   =   getimagesize($new_filename);
error_log('a.............  width:'.$image_size[0].'.............  height:'.$image_size[1]);

/*
所打出的error log,图片的真实高度和宽度是  500x500
[Tue Jul 15 02:45:15 2014] [error] [client 192.168.2.105] real_width: 337   real_height: 367
[Tue Jul 15 02:45:15 2014] [error] [client 192.168.2.105] real_width: 337   real_height: 367
[Tue Jul 15 02:45:15 2014] [error] [client 192.168.2.105] a.............  width:500.............  height:500
[Tue Jul 15 02:45:15 2014] [error] [client 192.168.2.105] 2   real_width: 337   real_height: 367
[Tue Jul 15 02:45:15 2014] [error] [client 192.168.2.105] $width = 337  $height = 367
*/

所处理的图片14054076904103.gif


版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-12-10 02:55:29

imagick获取图片的大小bug的相关文章

imagick获取图片尺寸有bug

<?php /* imagick的获取图片的高度和宽度函数有问题,使用GD函数可获得正确结果 gd函数 array getimagesize ( string $filename [, array &$imageinfo ] ) getimagesize() 函数将测定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP 图像文件的大小并返回图像的尺寸以及文件类型和一个可以用于普通 HTML 文件中 IMG 标记

BitmapFactory.Options详解 怎样获取图片的大小 遇到大一些的图片,遇到OOM(Out Of Memory)的问题

下面我们回到我们的主题上来:怎样获取图片的大小? 思路很简单: 首先我们把这个图片转成Bitmap,然后再利用Bitmap的getWidth()和getHeight()方法就可以取到图片的宽高了. 新问题又来了,在通过BitmapFactory.decodeFile(Stringpath)方法将突破转成Bitmap时,遇到大一些的图片,我们经常会遇到OOM(Out Of Memory)的问题.怎么避免它呢? 这就用到了我们上面提到的BitmapFactory.Options这个类. Bitmap

Android获取图片实际大小兼容平板电脑

项目中有个图片在平板电脑中显示特别小的原因,一直苦于没找到原因,也没有平板电脑测试,今天找了个修改分辨率的,编写相关方法终于处理了,记录下比较: 好让以后不造轮子. 主要是获取文章相关图片显示问题,直接用getIntrinsicWidth()方法获取,getIntrinsicWidth()获取的并非图片的实际宽度,在手机看还过得去,不会相差太远,但在平板电脑看, 它简直就是一个小女孩,太害羞了,以至于显示那么小. 回到正题: 解决方法: 1.获取手机分辨率 用该分辨率乘以其密度 if (file

js获取图片原始大小

摘要: 浏览器中显示的图片大小未必是他真实的高和宽,比如像下面这样,我们给他加上宽和高的样式 <img src="IE.png" style="width:25px;height:25px;"> 这样在浏览器中显示的大小就是25px.那么我们如何获取图片的真实大小呢?,下面的代码就实现了这个功能 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv=&quo

html5plus 从相册选择图片后获取图片的大小

plus.gallery.pick(function (filePath) { plus.io.resolveLocalFileSystemURL(filePath, function (entry) { console.log('resolveLocalFileSystemURL success') entry.getMetadata(function (metaData) { console.log('getMetadata success') console.log(metaData.si

通过url动态获取图片大小方法总结

很多时候再项目中,我们往往需要先获取图片的大小再加载图片,但是某些特定场景,如用过cocos2d-js的人都知道,在它那里只能按比例缩放大小,是无法设置指定大小的图片的,这就是cocos2d-js 的坑了,我们必须先获取图片大小,计算比例再对图片进行缩放. 查阅资料,我总结了两种通过url获取图片大小的方法: 1.预加载获取图片大小 var imgLoad = function (url, callback) { var img = new Image(); img.src = url; if

java 获取图片大小(尺寸)

1,获取本地图片大小(尺寸) File picture=new File(strSrc);BufferedImage sourceImg=ImageIO.read(new FileInputStream(picture)); sourceImg.getWidth(); sourceImg.getHeight(); 2,获取网络图片大小(尺寸) BufferedImage sourceImg=ImageIO.read(new URL(strSrc).openStream()); sourceImg

IOS 获取网络图片的大小 改变 图片色值 灰度什么的方法集合

第一.复制对象的基本概念 复制一个对象为副本,开辟一块新的内存来存储副本对象. 第二.如果一个对象想具备复制的功能,必须实现<NSCopying>协议和<NSMutableCopying>协议 NSObject自带的常用的对象有:NSNumber.NSString.NSArray.NSDictionary.NSMutableArray.NSMutableDictionay.NSMutableString,copy产生的对象时不可变的,mutableCopy产生的对象时可变的 第三.

js 获取图片宽高 和 图片大小

获取要查看大小的img varimg_url = 'http://img5.imgtn.bdimg.com/it/u=4267222417,1017407570&fm=200&gp=0.jpg'   // 创建img对象 var img = new Image();   // 改变图片的src img.src = img_url;   // 加载完成执行 img.onload = function(){   // 打印   alert('width:'+img.width+',height