Теперь мне нужно получить исходное загруженное изображение, чтобы я мог загрузить его на свой сервер.
Однако, когда я извлекаю изображение, которое мне дает 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)")
}
}
}
Код: Выделить всё
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
Мобильная версия