iOS 프로그래밍을 공부하고 있습니다.포인터를 사용하여 UIImage를 처리 할 수 있습니까?
이미지를 처리해야합니다.
이미지를 BMP 파일로 만들어야합니다. iOS에서는 BMP 파일을 만들 수 없습니다.
그래서 내가 포인터를 사용하여 BMP 파일을 만들 수 있다고 생각합니다.
나는 BMP 헤더를 만듭니다. NSData
개체에 넣으십시오.
NSData
에 이미지 데이터의 저장 떠났다. (내가 bmpData 말 것)
여기 내 궁금 시작합니다.
나는 크기 나 컨텍스트에서 UIImage
얻을 128 X 64
되는 화상을 가져야한다. (내가 image1을 말하는 것이다)
난
가 지금은 context2에서 UIImage
내려면 image1에 드로잉, 128 X 64
i가 그 크기를 사용 context2을 인 CGSize
을 어떤 크기가 128 x 64, 크기가 조정 된 image1.
저는 UIImageView
으로 만들고 image2를 사용하면 정상적으로 작동합니다. 좋은. image2가 잘 만들어진다.
그래서 서명 된 char * 포인터를 선언했습니다.
unsigned char *bmpDataPointer = (unsigned char *)image2;
과 내가 루프
for(int i = 0; i < 64; ++i)
{
for(int j = 0 ; j < 128; ++j)
{
// dataObj and bmpData are different NSData object
// dataObj just contain bitmap data to check my pointer works fine or not.
[dataObj appendBytes:&(bitmapDataPointer[i*1 + j]) length:sizeof(char)];
}
}
사용하고 난 데이터가 유효한지 확인하는 UIImage
을 실패합니다.
UIImage *createdImageUsedByaPointer = [UIImage imageWithData:dataObj];
if(createdImageUsedByaPointer == nil)
{
NSLog(@"nil!");
}
ok run. 문자열 nil이 표시됩니다.
왜 그런가요? 나는 문맥 크기를 128 x 64로 만든다. 그래서 나는 128 x 64 번 반복한다.
하지만 제대로 작동하지 않습니다.
어떻게 해결할 수 있습니까 ??
어떻게 포인터를 사용하여 UIImage
을 처리 할 수 있습니까 ??
누구나 알고있는 나를 도와주세요.
'이미지 2'의 유형은 무엇입니까? – Alexander
image2 is UIImage – MoonSoo
'UIImage' 객체를'unsigned char *'로 형변환 할 수 없습니다. '이미지 객체는 불변이므로 기본 이미지 데이터에 대한 직접 액세스도 제공하지 않습니다. 그러나 UIImagePNGRepresentation 및 UIImageJPEGRepresentation 함수를 사용하여 이미지 데이터의 PNG 또는 JPEG 표현을 포함하는 NSData 객체를 가져올 수 있습니다. – Alexander