0

내가 작업하고있는 응용 프로그램에서 사용자가 UIImagePicker (사진 라이브러리 또는 새 사진 찍기)를 사용하여 이미지를로드 할 수있는 섹션이 있습니다. 이렇게하면 대개 큰 이미지 해상도가됩니다 .220x2000 (또는 이와 비슷한)iPhone - 이미지 조작/편집 및 저장 (고해상도)

이제 이미지를 UIImageView에로드합니다 (400x320 만 허용). 그런 다음 사용자가 다른 이미지/개체를 선택하여 원래 이미지의 겹쳐서 표시하고 주변 사진을 이동하거나 크기를 조정하여 새 사진을 사진 라이브러리에 저장하거나 이메일로 보내기 전에 허용 할 수 있습니다.

나는 이미지를 저장하는 가장 좋은 방법은 원본 이미지가 여전히 높은 수준으로 유지되도록하기 위해 궁금한 것이 었습니다 ... 지금은 스크린 샷을 찍고 있지만 그 사진은 작은 400x320 이미지.

감사합니다.


내가 원했던 것을 얻었으므로 올바른 방법인지 아닌지 확실하지 않습니다.

기본적으로 내가 한 일입니다.

//NEWWIDTH and NEWHEIGHT are double the width and height of the UIImageView that i can edit the pictures in 
CGSize newSize = CGSizeMake(NEWWIDTH, NEWHEIGHT); 

UIGraphicsBeginImageContext(newSize); 

//i'm resizing myOriginalImage before to how i want 
[myOriginalImage drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)]; 

UIImage *image; 

//Here i go through all the other pictures i added on top and go the same drawInRect method for each of them...multiplying each value x,y,height,width by 2 

UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 

UIGraphicsEndImageContext(); 

return newImage; 

답변

0

이미지 조작 방법이 명확하지 않습니다. 내 응용 프로그램에서는 간단한 UIView에서 Core Graphics를 사용하고 있는데 다른 비트 맵 컨텍스트를 사용하여 비슷한 효과를 얻습니다.

- (void)drawRect:(CGRect)rect { 
CGContextRef context = UIGraphicsGetCurrentContext(); 
[_model render:rect context:context]; 
} 

내가 저장하기위한 전체 크기의 비트 맵을 렌더링 할 때 나는 CGBitmapContext와 같은 렌더링 코드를 실행 : 내보기에서 나는이 작업을 수행.

이것은 옵션이 아닐지 모르지만 저에게 효과적입니다.

행운을 빈다.

+0

죄송합니다. 구체적으로 말씀 드리겠습니다. 카메라 또는 사진 라이브러리의 원본 이미지를로드 한 다음 사용자가 다른 이미지를 선택하도록 허용하고 사용자가 이미지를 축소/확대 할 수 있습니다. 원본 이미지의 맨 위에 배치됩니다. 결국 그들은 내가 편집 한 작은 화면에 높이/너비와 위치를 추가 한 각각의 새로운 이미지가있는 배열을 가지고 있습니다 ... 나는 어떤 이미지 물건도 한 적이 없으며 어디서부터 또는 무엇을 읽을 지 전혀 모릅니다. . 고마워요. – rob1302

+0

안녕하세요 - CoreGraphics에 대해 읽어 보는 것이 좋습니다. 그렇게 생각합니다. –