Tôi có tệp .png trong thư mục tài nguyên của mình (kích thước thực là 411 KB) Khi tôi chuyển đổi uiimage thành nsdata và thử truy cập tài sản dài, nó cho tôi sai giá trị.độ dài bất động sản trả về kích thước sai (byte) cho một hình ảnh
Mã ...
UIImage *image = [UIImage imageNamed:@"sample.png"];
NSData *imgData = [[NSData alloc] initWithData:UIImageJPEGRepresentation(image, 1.0)];
int imageSize = imgData.length;
NSLog(@"Image size in KB is %d",imageSize/1024); //-------- returns 631 KB
Xin vui lòng cho tôi biết nếu có bất kỳ tài sản khác mà giúp ..
Vì vậy, đây là yêu cầu của tôi .... Tôi muốn biết kích thước của hình ảnh tôi chọn từ uimagepicker. Kích thước chính xác của hình ảnh khi tôi nhìn thấy nó trong công cụ tìm và kích thước được trả lại cho tôi sau khi chọn nó từ thư viện hoàn toàn khác ... Có bất kỳ tài sản nào khác có thể được sử dụng thay cho chiều dài không?
631 Kb là lượng bộ nhớ mà imgData nhận được. Điều này không có liên quan trực tiếp đến cách hình ảnh được lưu trữ trong tập tin thực tế. Nếu bạn muốn lấy kích thước tệp, hãy sử dụng hệ thống tệp. –
@RobvanderVeer độ dài dữ liệu rõ ràng và kích thước tệp sẽ có "mối quan hệ trực tiếp". Trong trường hợp này, chúng phải giống hệt nhau. Tức là, dữ liệu được đọc trực tiếp từ tập tin, mà nó không phải là. Do đó vấn đề. – matt3141
@ matt3141 đầu tiên tôi đồng ý câu trả lời của bạn là đúng. Nhưng tập tin không chỉ được đọc vào bộ nhớ ở đây, nó được đọc và xử lý. Do đó mối quan hệ với lưu trữ tập tin không phải là 'trực tiếp'. –