2014-12-18 3 views
0

나는 최고의 그래픽 디자이너는 아니지만 몇 개의 아이콘을 설정해야합니다. Border와 같은 옵션을 사용하여 김프로 만들었습니다. 모두 기본으로 1000x1000px로 설계되었으며 objective-c 코드 인 UIImageView에 사용되었습니다.Objective-c UIImage 이미지 품질이 좋지 않음

크기 조정 아이콘이 왜 끔찍한 지 궁금합니다. 어떤 제안? 응용 프로그램에서

: http://s14.postimg.org/k2g9uayld/Screen_Shot_2014_12_18_at_11_22_53.png http://s14.postimg.org/biwvwjq8x/Screen_Shot_2014_12_18_at_11_23_02.png

원본 이미지 :

때문에 2 개 이상의 링크를 게시 할 수 없습니다 : 내가 생각하지 말아

을 s17.postimg.org/qgi4p80an/fav.png~~V을 그게 중요하지만

UIImage *image = [UIImage imageNamed:@"fav.png"]; 
image = [UIImage imageWithCGImage:[image CGImage] scale:25 orientation:UIImageOrientationUp]; 
self.navigationItem.titleView = [[UIImageView alloc] initWithImage:image]; 

그러나 이미지 중 하나가 스토리 보드에 설정되었습니다. 효과는 같습니다.

+0

당신은 iOS 장치의 실제 해상도를 존중하지 않으므로 http://www.iosres.com/과 같은 각각의 해상도로 모든 아이콘을 만들고 1x, 2x 및 3x 약어를 잊지 말고 나는 단지 fav.png 만 가지고 있다고 생각합니다. 이미지 [email protected]가 필요합니다.이 이미지는 망막 장치에 표시되도록 자동으로 선택되며, iPhone 6 Plus 장치에 대한 새로운 해상도 3이 있으므로, [email protected] 이미지를 완벽하게 잘 보이도록 만듭니다. – iphonic

+0

i'mageNamed'를 사용할 때 파일 이름이 아닌 이름을 지정하십시오. 위의 설명은 나머지 부분을 설명했습니다. – Andy

+0

스케일이있는 두 번째 라인은 제 정신이 아니므로 적절한 크기로 아트를 제공하십시오. – Andy

답변

-1

이런 종류의 동작을 피하려면 png 파일 대신 SVG를 작성하는 것이 좋습니다. lib SVGKit을 사용하여 마음의 내용에 맞게 크기를 조정할 수 있습니다. SVG 형식은 벡터 형식이므로 배율을 잃지 않습니다. https://github.com/SVGKit/SVGKit

편집 : 는 매우 가볍고하게, 그래서 1000X1000px에서 당신의 PNG 파일이 SVG 파일을 텍스트 파일로, 다른 한편으로는, 정말 무거운해야이 솔루션을 추가하려면

+0

유일한 방법입니까? 난 그냥 몇 가지 아이콘을 설정해야합니다, 나는 분명히 다음 프로젝트에서 이것을 사용합니다. – dansr23

+1

더 간단한 방법은 더 작은 이미지를 만들어서 스케일링이 CPU만큼이나 고통스럽지 않도록하는 것입니다. 다른 이미지 크기를 제공하고 결과를 보려고합니까? – MaxouMask

+0

원본 질문과 아무런 관련이 없음 – Andy

0
[self.favO.layer setMinificationFilter:kCAFilterTrilinear]; 
    [self.favO setImage:[self resizeImage:[UIImage imageNamed:@"fav.png"] newSize:CGSizeMake(35,35)] 
         forState:UIControlStateNormal]; 

- (UIImage *)resizeImage:(UIImage*)image newSize:(CGSize)newSize { 
    CGRect newRect = CGRectIntegral(CGRectMake(0, 0, newSize.width, newSize.height)); 
    CGImageRef imageRef = image.CGImage; 

    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0); 
    CGContextRef context = UIGraphicsGetCurrentContext(); 

    CGContextSetInterpolationQuality(context, kCGInterpolationHigh); 
    CGAffineTransform flipVertical = CGAffineTransformMake(1, 0, 0, -1, 0, newSize.height); 

    CGContextConcatCTM(context, flipVertical); 
    CGContextDrawImage(context, newRect, imageRef); 

    CGImageRef newImageRef = CGBitmapContextCreateImage(context); 
    UIImage *newImage = [UIImage imageWithCGImage:newImageRef]; 

    CGImageRelease(newImageRef); 
    UIGraphicsEndImageContext(); 

    return newImage; 
} 

이 고정 된 문제. 이 문제는 UIImageView가 크기 조정을 처리하는 동안 발생합니다.

관련 문제