UIImage *image = [UIImage imageNamed:@"123"];
NSData *data = UIImagePNGRepresentation(image);
// 每次读取1024的长度
NSInteger readLength = 1024;
NSInteger count = data.length / readLength;
NSMutableData *mutData = [NSMutableData data];
char bytes[data.length];
for (int i = 0; i < count; i++) {
[data getBytes:bytes range:NSMakeRange(i * readLength, readLength)];
NSData *newData = [NSData dataWithBytes:bytes length:readLength];
[mutData appendData:newData];
}
// 最后剩余的部分
NSInteger res = data.length % readLength;
if (res > 0) {
[data getBytes:bytes range:NSMakeRange(data.length - res, res)];
NSData *newData = [NSData dataWithBytes:bytes length:res];
[mutData appendData:newData];
}
NSLog(@"resulteData:%ld", mutData.length);
==================swift版本=======================
if let image = UIImage(named: "123"), let data = image.pngData(), data.count > 0 {
let nsdata = data as NSData
var bytes = [UInt8](repeating: 0, count: nsdata.count)
getBytes(&bytes, length: nsdata.count)
let readLength = 1024
let mutData = NSMutableData()
let count = bytes.count / readLength
for i in 0..<count {
let start = i * readLength
let values = bytes[start..<(start + readLength)]
let value = NSData(bytes: Array(values), length: values.count)
append(value as Data)
}
let reset = bytes.count % (readLength)
if reset > 0 {
let start = bytes.count - reset
let values = bytes[start..<bytes.count]
let value = NSData(bytes: Array(values), length: values.count)
append(value as Data)
}
print("mutData.count:\(mutData.count)")
}