【问题标题】:Alamofire encodes image in which format?Alamofire 以哪种格式编码图像?
【发布时间】:2018-03-12 14:31:00
【问题描述】:

我正在使用 alamofire 通过多部分将图像发送到服务器。

multipartFormData.append(UIImageJPEGRepresentation(self.imageDet[0].image!,0.5)!, withName: "filestream", mimeType: "image/jpeg")

我有来自服务器端的字节格式的图像。

这是我在服务器端收到的字节示例

    ����JFIFHH��XExifMM*�i&�������8Photoshop 3.08BIM8BIM%��ُ��  ���B~����"��    
���}!1AQa"q2���#B��R��$3br� 
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz���������������������������������������������������������������������������    
���w!1AQaq"2�B����  #3R�br�
$4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������C

如何将以下数据转换回图像?

【问题讨论】:

  • 提示:您正在将图像显式转换为 JPG 并发送该数据。
  • @rmaddy 我知道我正在将其发送为代码所示的 JPEG 表示形式。但我想知道,alamofire 使用哪个编码器来转换图像。即在 utf8、base64 或任何其他编码中。如果您认为我问错了,我会更新问题!我在服务器端获取一些数据,我不知道如何读取并转换回图像。
  • @rmaddy 在这里我认为 alamofire 通过JPEGRepresentation 获取.jpeg 文件,并且还使用编码器将图像转换为数据。然后它发送到服务器。我理解错了吗?
  • @rmaddy 我刚刚在 textEdit 中打开了图像,发现它与我在服务器端使用 alamofire 收到的字节不同。是正常的还是有问题?
  • @rmaddy 更新问题!

标签: swift alamofire jpeg encode uiimagejpegrepresentation


【解决方案1】:

当您编写 UIImageJPEGRepresentation(...) 时,图像以 JPEG 编码并转换为二进制格式(DataNSData)。 然后将此二进制数据发送到服务器。

【讨论】:

  • 如何检查二进制数据是否正确表示我发送的图像。我想交叉检查我是否发送了正确的图像。如果我发送 png 格式的图片怎么办。会造成问题吗?
  • 要检查图像,您可以在发送后下载它,然后在 imageView 中显示它。是的,您可以发送 png 图像,将 UIImageJPEGRepresentation 转换为 UIImagePNGRepresentation 并将 image/jpeg 转换为 image/png
  • 我在服务器端有字节形式的图像,如何将字节转换为图像?我尝试将其复制到文本文件并重命名为.jpeg/.png,但仍然没有生成图像。
  • 抱歉,我帮不了你。这是一个与服务器相关的问题,而不是 iOS/Swift 或 Alamofire。
  • 它与iOS/swift和alamofire有关!我只想知道在服务器端收到的图像与发送的图像相同。像 utf8 或 base64 或类似的任何编码都是由 alamofire 完成的。 (主要关注的是交叉检查收到的图像是我发送的)
猜你喜欢
  • 2010-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-21
  • 2011-01-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多