2016-08-12 8 views
0

이미지를 축소 할 때 약간의 품질 저하가 예상되지만 이미지를 크기 (75,75)의 UIButton에 할당하면 품질이 좋습니다.이미지의 배율을 조정하면 이미지가 손실됩니다.

UIPasteboard를 사용하여 복사/붙여 넣기를 위해 이미지의 크기를 (75,75) 크기로 조정하면 품질이 매우 나쁩니다.

배경 : 내 응용 프로그램은 키보드 확장 기능이므로 할당 된 이미지가있는 버튼이 있으며 버튼을 클릭하면 버튼에서 이미지를 가져 와서 올바른 크기로 크기를 조정 한 다음 UIPasteboard로 복사 한 다음 풀.

코드 :

다음은 이미지를 버튼 클릭을 감지하고 복사하는 내 코드입니다 :

- (IBAction) clickedImage:(id)sender { 
    UIButton *btn = sender; 
    UIImage *scaledImage = btn.imageView.image; 
    UIImage *newImage = [scaledImage imageWithImage:scaledImage andSize:CGSizeMake(75, 75)]; 
    NSData *imgData = UIImagePNGRepresentation(newImage); 

    UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; 
    [pasteboard setData:imgData forPasteboardType:[UIPasteboardTypeListImage objectAtIndex:0]]; 
} 

는 내가 이미지 스케일링에 대한 imageWithImage:andSize: 방법과 함께있는 UIImage 범주가 있습니다. 이것은 스케일링 방법 :

- (UIImage*)imageWithImage:(UIImage*)image andSize:(CGSize)newSize { 
    // Create a bitmap context. 
    UIGraphicsBeginImageContextWithOptions(newSize, NO, image.scale); 
    [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)]; 
    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return newImage; 
} 

어떤 이해가되지 않는 것은 내가 그것이 내가 코드를 사용하여 확장 할 때와 동일한 크기로 축소되어있는 UIButton에 이미지를 추가하는 듯했으나 때 품질이 방법이다 크기가 조정 된 이미지를 반환 할 때보 다 UIButton에 더 좋습니다. 스케일링 코드에 문제가 있습니까? 아무도 왜 두 이미지 사이에 품질의 저하가 있는지 알고 있습니까?

+0

단추에서 이미지를 검색하고 있습니다. 자원에서 새로운'UIImage'를 만들면 똑같은가요? – Losiowaty

+0

@Losiowaty 예, 새로운 UIImage를 만들려고했는데 동일합니다 –

+0

이러한 이미지는 벡터 그래픽으로 더 잘 표현 될 수 있으며 필요한 배율로 출력 될 수 있습니까? –

답변

0

시도해 보셨습니까? https://github.com/mbcharbonneau/UIImage-Categories?

kCGInterpolationHigh로 설정 품질이 좋은 결과를 줄 것으로 보인다

- (UIImage *)resizedImage:(CGSize)newSize 
    interpolationQuality:(CGInterpolationQuality)quality; 

크기 조정 카테고리에서 흥미로운 방법이 있습니다 (느린 조금)

0

이 할 수있는 더 나은 방법이 ImageIO을 사용하는 것입니다 이미지 크기를 조정할 수 있습니다. 조금 더 오래 걸리지 만 그래픽 컨텍스트로 다시 그려 넣는 것보다 이미지 크기를 조정하는 것이 훨씬 좋습니다.