原创

苹果手机上传图片成横着的了?安卓正常关于iphone上传图片横着的问题


苹果手机上传图片成横着的了?安卓正常

用ajax异步上传图片,用手机来上传,安卓手机就是显示的正常,但是用苹果手机就出现了问题了,那就是我用苹果手机上传的图片它就显示是横着的。

解决办法:

目测是exif搞的,用下面这个函数处理,需要exif扩展【宝塔安装如下,其他请自行配置】

  1. function removeExif($imgFile) {
  2. if (!function_exists('exif_read_data')) {
  3. return;
  4. }
  5. $img = @imagecreatefromjpeg($imgFile);
  6. if($img === false){
  7. return;
  8. }
  9. $exif = exif_read_data($imgFile);
  10. if (!empty($exif['Orientation'])) {
  11. switch ($exif['Orientation']) {
  12. case 8:
  13. $image = imagerotate($img, 90, 0);
  14. break;
  15. case 3:
  16. $image = imagerotate($img, 180, 0);
  17. break;
  18. case 6:
  19. $image = imagerotate($img, -90, 0);
  20. break;
  21. }
  22. }
  23. imagedestroy($img);
  24. if (isset($image)) {
  25. imagejpeg($image, $imgFile);
  26. imagedestroy($image);
  27. }
  28. }

实际使用 tp中

实际使用 原生

  1. <?php
  2. $image = imagecreatefromstring(file_get_contents($_FILES['image_upload']['tmp_name']));
  3. $exif = exif_read_data($_FILES['image_upload']['tmp_name']);
  4. if(!empty($exif['Orientation'])) {
  5. switch($exif['Orientation']) {
  6. case 8:
  7. $image = imagerotate($image,90,0);
  8. break;
  9. case 3:
  10. $image = imagerotate($image,180,0);
  11. break;
  12. case 6:
  13. $image = imagerotate($image,-90,0);
  14. break;
  15. }
  16. }
  17. // $image now contains a resource with the image oriented correctly
  18. ?>

上述解决办法只是给大家一个参考,具体还需要根据自己的项目进行合理配置。
特别鸣谢

留言反馈
问题反馈渠道,如有软件无法下载或者其他问题可反馈。【由于某种原因,目前留言不展示】
用户需要登录后才能留言反馈