这就是我使用 Alamofire 和 Swift 将图像上传到 Imgur 的方法:
let url = URL(string: "https://api.imgur.com/3/upload")!
private var headers: [String: String] {
["X-Token": "[mytokenhere]", "Authorization": "Client-ID [myidhere]"]
}
Alamofire.upload(multipartFormData: { multipart in
if let data = UIImagePNGRepresentation(image.image) {
multipart.append(data, withName: "image", fileName: "image.png", mimeType: "image/png")
}
}, to: url, headers: headers, encodingCompletion: { result in
//convert result image from result here
})
上传前的示例,原始图像(如您所见,即使在这里它也添加了白色背景,为什么?):
上传后,返回上传图片的url:
最初在电脑和iPhone上它看起来像这样:
这就是当您的图像尺寸较大时 Imgur 的行为方式 - 它将您的图像转换为 JPEG。有关上传限制,请参阅Imgur 帮助页面。
非动画图像(例如 JPG、PNG 等)的最大文件大小为 20MB。超过 5MB 的 PNG 文件将转换为 JPEG。
请注意,对于匿名上传,此限制为 1MB:
匿名上传的超过 1MB 的非动画图像和帐户持有者超过 5MB 的非动画图像将被有损压缩。
通过检查响应 JSON,您可以看到它已转换为 JPEG。 “类型”键将指示实际上传的图像的类型。例如,当我匿名上传大于1MB的png时返回:
{
"status": 200,
"success": true,
"data": {
...
"type": "image/jpeg", // <---
...
}
}