exif数据中没有方向 - PHP图像上传

2023-12-21

一直在尝试检测从 iPhone 上传的图像的图像方向,然后据此调整它们的方向。

我正在尝试解决以肖像拍摄的图像以 -90 度旋转上传的问题。我尝试了许多不起作用的 switch 语句,因此决定在 JSON 返回中返回 exif 数据。

我看到的问题是它们在 exif 数据中没有方向。

我正在这样做:

$imagefile = $fileToUpload["tmp_name"];
$destinationImage = imagecreatefromstring(file_get_contents($imagefile));
$exif = exif_read_data($imagefile);
$moveUploadedFile = imagejpeg($destinationImage, $this->uploadDir . "/" . $newFileName, 100);
imagedestroy($destinationImage);

if ($moveUploadedFile) {
  $return['ort'] = $exif;
  echo json_encode($return);
}

我在返回中看到的(使用萤火虫)是:

FileName:"phpUQZFHh"
FileDateTime:1410465904
FileSize:473421
FileType:2
MimeType:"image/jpeg"
SectionsFound:"COMMENT"

Computed: OBJECT:
Height:700
Width:933
IsColor:1

Comment: ARRAY:
0:"CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 100"

我希望能够像这样使用 exif 数据:

    if (!empty($exif['Orientation'])){
        //get the orientation
        $ort = $exif['Orientation'];
        //determine what oreientation the image was taken at
        switch($ort){
            case 2: // horizontal flip
                break;
            case 3: // 180 rotate left
                $destinationImage = imagerotate($destinationImage, 180, -1);
                break;
        }
    }

有什么帮助吗?

编辑:下载已上传的图像并检查其属性后,似乎所有 exif 数据都在上传过程中被删除。

这仍然让我困惑为什么它在上传之前/期间旋转/如何解决这个问题。


我猜想当您仅从 iOS 设备上传图片时,“方向”值会出现在 exif_read_data 函数返回的数据中。它在桌面浏览器中不起作用。我可能错了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

exif数据中没有方向 - PHP图像上传 的相关文章

  • 扩展蓝图类?

    我想覆盖timestamps 函数中发现Blueprint班级 我怎样才能做到这一点 e g public function up Schema create users function Blueprint table table gt
  • 蛋糕控制台 2.2.1:烘焙错误

    运行 MAMP 的 OSX 机器 CakePHP 2 2 1 已正确安装和配置 这意味着当我浏览到 Index php 文件时 所有绿色条都显示出来 我已经完成了博客教程 并且正在开发我的第二个应用程序 其中脚手架已启动并运行 现在我第一次
  • Symfony2 Assetic 和 Less Sourcemaps

    我不确定如何破解 assetic less 过滤器以输出源映射文件 我这里指的是LessFilterhttps github com kriswallsmith assetic blob master src Assetic Filter
  • iOS:生成pdf时绘制文本时如何设置字体?

    我在ios应用程序中使用drawpdf函数生成pdf 同时调用nsobject类中的drawtext函数 它根据我指定的框架和字符串清楚地绘制文本 我的代码是 void drawText NSString textToDraw inFram
  • Swift,以编程方式更改 UICollectionViewCell 和 UILabel(单元格内)的宽度

    我已将单元格 UICollectionViewCell 的宽度设置为等于 UICollectionView 的宽度 并且我尝试对该单元格中包含的 UILabel 执行完全相同的操作 我认为下面的代码准确地解释了我想要实现的目标 所以我在这里
  • 如何让UITextView背景线与文字对齐?

    我正在尝试绘制 UITextView 的背景线 这是我用来画这些线的代码 CGContextBeginPath context CGContextSetStrokeColorWithColor context self horizontal
  • preg_match_all 查询仅显示有问题的外部组

    我无法弄清楚如何只显示 preg 查询的外部组级别 我会给你一个例子 preg match all start end input matches 这个输入start1 start2 2end 1end产生这个输出start1 start2
  • 交换关联数组中的两个项目

    Example arr array apple gt sweet grapefruit gt bitter pear gt tasty banana gt yellow 我想调换一下柚子和梨的位置 这样数组就变成了 arr array ap
  • 从命令行添加 Xcode 开发者帐户

    我正在尝试使用xcodebuild allowProvisioningUpdates在我只能通过命令行访问的计算机 Azure Devops macOS 托管计算机 上 不幸的是 根据man xcodebuild为了使用 allowProv
  • PHP 在输入流中使用 fwrite 和 fread

    我正在寻找将 PHP 输入流的内容写入磁盘的最有效方法 而不使用授予 PHP 脚本的大量内存 例如 如果可以上传的最大文件大小为 1 GB 但 PHP 只有 32 MB 内存 define MAX FILE LEN 1073741824 1
  • 调整 UIImage 的大小而不将其完全加载到内存中?

    我正在开发一个应用程序 用户可以在其中尝试加载非常非常大的图像 这些图像首先在表格视图中显示为缩略图 我的原始代码会在大图像上崩溃 因此我重写它以首先将图像直接下载到磁盘 是否有一种已知的方法可以调整磁盘上图像的大小 而无需通过以下方式将其
  • PHP 与 MySQL 查询性能( if 、 函数 )

    我只看到这个artice http www onextrapixel com 2010 06 23 mysql has functions part 5 php vs mysql performance 我需要知道在这种情况下什么是最好的表
  • watchOS 错误:控制器接口描述中的未知属性

    我将 WKInterfacePicker 添加到情节提要中 并将其连接到界面控制器中的 IBOutlet 运行应用程序时 它在控制台中显示一条错误消息 控制器的接口描述 watchPicker 中的未知属性 Code interface I
  • PHP preg_filter 返回意外的长值

    尝试在 Woocommerce 中删除标签并过滤值 但无法以正确的格式获取它 有东西有腥味 我正在使用WC gt cart gt get cart subtotal 来检索该值 在此示例中 我的值是 2 429kr 原始返回值是 span
  • 覆盖控制器 Symfony 3.4/4.0

    我目前正在尝试覆盖 FOSUserBundle 中的控制器 在新的文档中 https symfony com doc 3 4 bundles override html https symfony com doc 3 4 bundles o
  • Woocommerce 结账自定义选择字段

    我有以下功能 将选择列表添加到 woo commerce 结账表单中 woocommerce form field airport pickup array type gt select class gt array airport pic
  • 如何解决 Xcode 5 中的红色(已移动)文件?

    在 Xcode 4 中 当您要移动文件时 可以通过单击右侧菜单中的按钮并通过 Finder 选择新位置来解析文件的新位置 在 Xcode 5 中 右侧菜单中没有按钮 我还没有找到任何方法通过右键单击文件或顶部菜单栏选项来指定文件的新位置 在
  • 如何在 UICollectionView 中将行居中?

    我有一个UICollectionView与随机细胞 有什么方法可以让我将行居中吗 默认情况下它是这样的 x x x x x x x x x x x x x x 这是所需的布局 x x x x x x x x x x x x 我必须做这样的事
  • 更改 iOS7 中 UIAlertView 的字体大小

    我想更改alertView中消息文本和标题文本的字体大小 苹果网站上没有任何文档谈到这一点 但苹果在其子类注释中表示 UIAlertView 类旨在按原样使用 请参考以下链接 https developer apple com librar
  • ios - 如何声明静态变量? [复制]

    这个问题在这里已经有答案了 C 中声明的静态变量如下 private const string Host http 80dfgf7c22634nbbfb82339d46 cloudapp net private const string S

随机推荐

  • 如何使用 pngBitmapEncoder 保存图像

    根据图像编码示例here http msdn microsoft com en us library ms748873 aspx imageformats我应该能够使用png位图编码器 http msdn microsoft com en
  • 使用 C++ lambda 进行部分应用?

    编辑 我在下面使用咖喱 但已被告知这是部分应用 我一直在试图弄清楚如何用 C 编写柯里函数 而且我实际上已经弄清楚了 include
  • 有 Windows 的良好 Valgrind 替代品吗?

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 当我发现 Valgrind 仅适用于 Linux 时 我正在研究 Valgrind 来帮助改进
  • 如何在C#中获取TPL任务线程的引用?

    当我创建任务时 Task task Task Factory StartNew gt someMethod args 在 C 4 0 中 如何获取此任务的线程的引用 该任务是否有可能在创建该任务的同一个线程中执行或生成多个线程 Update
  • 与 Redux 反应?那么“背景”问题呢?

    我通常在 Stack 上发布与代码相关的内容 但这更多的是关于社区总体想法的问题 似乎有很多人提倡使用 Redux 和 React 来管理数据 状态 但是在阅读和学习两者时 我发现了一些看起来不太正确的东西 Redux 在此页面底部 htt
  • 如何获取datagrid列绑定的字段?

    在我的 xaml 中 我修改了每个列标题以包含一个按钮 对于命令参数 我想使用列的数据字段名称 而不是标题内容 例如 我想要 JOB TITLE 而不是标题内容的 职位名称 对于标题内容我会使用
  • 在 VSTS 中创建 Kubernetes 端点会生成错误

    设置新的 Kubernetes 端点并单击 验证连接 时出现错误消息 Kubconfig 不包含用户字段 请检查 kubeconfig 始终显示 尝试了多种输出配置文件的方法均无效 我还从网上复制并粘贴了许多示例配置文件 但最终都遇到了相同
  • Google 表格当前用户

    我希望你能帮助我 我希望在单元格中显示 google 工作表的当前用户以进行 vlookup 我添加了一个脚本来将登录的用户名拉入脚本库 但我无法将 logger log 信息转储到 google 工作表中 任何信息都会很棒 谢谢 奈杰尔
  • 无法使用 Elixir 连接到远程 SSH 服务器

    我已经尝试使用 elixir 连接到远程 ssh 服务器一段时间了 这就是我在 IEX 中所做的 Macintosh elixir logglycious master gt iex 15 07 20 0 11 Erlang OTP 17
  • 应用程序的启动时间

    在android中启动应用程序并计算其启动时间的最佳方法是什么 如果可以用一些代码完成 那就更好了 嗯 首先 更准确地说 我应该指出 在 Android 中 您启动的是 Activity 而不是应用程序 因此 由于应用程序的入口点是处理 L
  • 无法在 .NET standard 2 项目中使用实体框架

    如何在 NET Standard 项目中使用实体框架或类似的东西 NET Standard 2 似乎不支持 EF 这真的很烦人 所以我尝试使用 Microsoft EntityFrameworkCore SqlServer 和 icroso
  • 我可以使用 Razor Intellisense 查看 .html 文件,就好像它们是 Visual Studio 2010 中的 .cshtml 文件一样吗?

    我已经让 Net MVC3 来处理 html 和其他自定义扩展 就像处理 cshtml 文件一样 但 VS2010 不会突出显示 Razor 语法或显示它的 Intellisense 如何让 VS2010 将 html 文件识别为 csht
  • 使用 VS 2015 Professional 创建无需管理员权限即可运行的安装程序

    我正在尝试创建一个无需管理员权限即可运行的安装文件 MSI 为此 我尝试了以下选项 我已经设置了安装所有用户财产给false如下 还设置了安装所有用户可见 to false 我还更改了默认位置 应用程序数据文件夹 更改上述属性后 仍然需要管
  • 如何重新启动用 Delphi 编写的 Windows 服务应用程序?

    我有一个用 Delphi 编写的 Windows 服务 它使用的第三方资源之一偶尔会被损坏 我发现解决这种情况的唯一方法是退出并重新启动程序 我可以从程序内部检测到资源何时损坏 并且可以告诉 Windows 在服务停止后重新启动该服务 但我
  • 新的 ViewController 导致黑屏

    我通过界面生成器添加新的视图控制器 场景 我将它们放在画布上 然后创建一个新的视图控制器子类 NewViewController 这会创建两个文件 NewViewController h and NewViewController m 然后
  • 通知用户应用程序商店中应用程序的新更新作为警报并自动在 iPhone 中安装更新版本?

    目前我的应用程序版本 1 1 可以在应用程序商店中找到 当前情况 当我更新新版本时 当用户访问应用程序商店时 更新会显示在应用程序商店中 必需的 一旦用户启动应用程序警报 就会弹出 如果应用程序商店中有新版本 它应该如果用户单击 确定 则自
  • 从应用程序内部调用地图获取路线 - iOS 5 iOS 6

    这是一个奇怪的问题 我的应用程序应该能够调用 iOS 中的内置地图 5 1 和 6 事实证明 它在iOS6下工作得很好 但在iOS5 1下却不行 iOS6 中的地图被调用 并跟踪从saddr 到daddr 的方向 但是当我在iOS5 中时
  • JDK 似乎已安装,但未检测到且命令不起作用

    我家里刚买了一台新电脑 我整晚都在尝试在我的 Windows 7 64 位机器上安装 JDK 8u11 我知道我下载了正确的 64 位版本 我知道我的计算机上已经安装了 JRE 因为java version回报java version 1
  • 无法在 Windows 上安装 pylibmc

    我尝试在 Windows 10 计算机上使用 pip install pylibmc 安装 pylibmc 但出现以下错误 我需要知道是否有任何方法可以在 Windows 10 上安装 libmemcached 因为我需要安装需要 libm
  • exif数据中没有方向 - PHP图像上传

    一直在尝试检测从 iPhone 上传的图像的图像方向 然后据此调整它们的方向 我正在尝试解决以肖像拍摄的图像以 90 度旋转上传的问题 我尝试了许多不起作用的 switch 语句 因此决定在 JSON 返回中返回 exif 数据 我看到的问