Swift Kingfisher Получить исходное изображениеIOS

Программируем под IOS
Ответить
Anonymous
 Swift Kingfisher Получить исходное изображение

Сообщение Anonymous »

Я использую библиотеку Kingfisher в представлении чата SwiftUI для отображения изображений с помощью KFImage(url).
Теперь мне нужно получить исходное загруженное изображение, чтобы я мог загрузить его на свой сервер.
Однако, когда я извлекаю изображение, которое мне дает Kingfisher, размер файла становится больше, чем исходный файл. Из-за ограничений на размер серверной части я должен отправить точный исходный файл.
Вот что я пробовал

Код: Выделить всё

KFImage(url)
.cacheOriginalImage(true)
.contextMenu {
Button("Copy Image") {
let cacheKey = url.cacheKey

// Get original data synchronously from disk cache
do {
if let originalData = try ImageCache.default.diskStorage.value(forKey: cacheKey) {
print("Original data size: \(originalData.count) bytes (~\(originalData.count / 1024 / 1024) MB)")
} else {
print("No cached data found")
}
} catch {
print("Error retrieving cached data: \(error)")
}
}
}
А также я попробовал функцию getImage, чтобы получить изображение и преобразовать его в данные. Кроме того, изображение получается гораздо большего размера, чем исходное.

Код: Выделить всё

KFImage(url)
.cacheOriginalImage(true)
.contextMenu {
Button("Copy Image") {
KingfisherManager.shared.retrieveImage(with: url, options: [.originalCache(.default)]) { result in
switch result {
case .success(let value):
Task { @MainActor in
if let dataA = value.image.jpegData(compressionQuality: 1.0) {
print("Original data size: \(originalData.count) bytes (~\(originalData.count / 1024 / 1024) MB)")
}
}
case .failure(let error):
print("Error loading image: \(error)")
}
}
}
}
Есть ли другой способ получить точное исходное изображение без его повторной загрузки?

Подробнее здесь: https://stackoverflow.com/questions/798 ... inal-image
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»