Tôi đang gặp sự cố lạ với thao tác UIImage của mình.Dữ liệu tiết kiệm iPhone iOS thu được từ UIImageJPEGRepresentation() không thành công lần thứ hai: ImageIO: CGImageRead_mapData 'open' không thành công
Tôi đang thực hiện đồng bộ dropbox và phải lưu trữ hình ảnh của tôi dưới dạng tệp cục bộ. Để làm như vậy, tôi lưu chúng bằng cách sử dụng UIImagePNGRepresentation(image)
hoặc UIImageJPEGRepresentation(image, 0.66)
Dưới đây là quy trình làm việc điển hình của tôi: tài lựa chọn một hình ảnh hoặc mất ảnh Hình ảnh được giao cho một IMAGExem Quan điểm ảnh của UIImage được lưu vào một tập tin sử dụng phương pháp này dưới đây
Tiếp theo thời gian sử dụng lại mở ứng dụng, tôi đọc hình ảnh trở lại từ các tập tin sử dụng
[UIImage imageWithContentsOfFile:fullImagePath]
này hoạt động một lần.
Lần thứ hai tôi chạy qua thường trình, tôi nhận được thông báo lỗi được liệt kê bên dưới khi cố lưu hình ảnh vào đĩa một lần nữa.
//saving the image
NSData* data = isPNG?UIImagePNGRepresentation(image):UIImageJPEGRepresentation(image, 0.66);
BOOL success = [data writeToFile:filepath atomically:YES];
if(!success)
{
DLog(@"failed to write to file: %@",filepath);
}
//loading the image
[UIImage imageWithContentsOfFile:fullImagePath]
Tôi nhận được lỗi này khi tôi cố gắng lưu lại một hình ảnh mà trước đó đã được chuyển đổi sang JPEG hoặc PNG
2012-05-21 08:16:06.680 file already exists: NO
ImageIO: CGImageRead_mapData 'open' failed '/var/mobile/Applications/C1312BF8-C648-4397-82F3-D93E4FAAD35F/Documents/imageData/LogoImage.jpg'
error = 2 (No such file or directory)
May 21 08:16:06 <Error>: ImageIO: JPEG Not a JPEG file: starts with 0xff 0xd9
May 21 08:16:06 <Error>: ImageIO: JPEG Application transferred too few scanlines
Nó xuất hiện với tôi rằng lỗi này xảy ra do tôi cố gắng lưu lại ảnh dưới dạng JPEG một lần nữa. Nếu tôi yêu cầu khung nhìn hiển thị chính nó trong ngữ cảnh (tạo một hình ảnh mới có hiệu quả), thì lỗi đó không xảy ra.
Có ai biết những gì tôi đang làm sai? Tôi có thiếu một số loại siêu dữ liệu không bằng cách cố gắng chuyển đổi UIImage thành dữ liệu, tải lại và cố gắng chuyển đổi nó một lần nữa sau khi hiển thị nó cho người dùng?
tôi nghĩ rằng vấn đề có thể bạn đang lưu dữ liệu với định dạng jpeg và truy nhập định dạng png tức là khi dữ liệu hình ảnh jpeg được lưu sau đó khi truy cập imageview truy cập vào nsdata của vấn đề biểu diễn png có thể ở đó –
Rất giống với: http://stackoverflow.com/ câu hỏi/5081297/ios-uiimagejpegrepresentation-lỗi-không-a-jpeg-file-bắt đầu-với-0xff-0xd9 –