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)
nsdata.
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)
mutData.
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)
mutData.
append(value
as
Data)
print(
"mutData.count:\(mutData.
count)
")