php imagick 图片旋转,如何根据EXIF“方向”数据停止PHP iMagick自动旋转图像

目前正在使用PHP和iMagick开发海报打印Web应用程序。

这是我用来测试应用程序的上传/图像编辑功能的示例图像:

该图像包含以下EXIF数据:

[FileName] => 1290599108_IMG_6783.JPG

[FileDateTime] => 1290599109

[FileSize] => 4275563

[FileType] => 2

[MimeType] => image/jpeg

[SectionsFound] => ANY_TAG, IFD0, THUMBNAIL, EXIF, INTEROP, MAKERNOTE

[COMPUTED] => Array

(

[html] => width="3504" height="2336"

[Height] => 2336

[Width] => 3504

[IsColor] => 1

[ByteOrderMotorola] => 0

[CCDWidth] => 22mm

[ApertureFNumber] => f/5.6

[UserComment] =>

[UserCommentEncoding] => UNDEFINED

[Thumbnail.FileType] => 2

[Thumbnail.MimeType] => image/jpeg

)

[Make] => Canon

[Model] => Canon EOS 30D

[Orientation] => 6

[XResolution] => 72/1

[YResolution] => 72/1

[ResolutionUnit] => 2

[DateTime] => 2009:08:31 08:23:49

[YCbCrPositioning] => 2

[Exif_IFD_Pointer] => 196

然而,iMagick当__构造为此图像时,会根据[Orientation] =>自动旋转另外的90度CCW。 6(我想!)导致这个…

我想知道的是…

如何保持在页面顶部看到的图像的原始方向?这可能通过禁用iMagick执行的自动旋转吗?

非常感谢

更新:这是我提出的解决方案…它将根据EXIF数据中的方向修复方向

public function fixOrientation() {

$exif = exif_read_data($this->imgSrc);

$orientation = $exif['Orientation'];

switch($orientation) {

case 6: // rotate 90 degrees CW

$this->image->rotateimage("#FFF", 90);

break;

case 8: // rotate 90 degrees CCW

$this->image->rotateimage("#FFF", -90);

break;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值