iOS에 파일 이미지 파일의 2x 버전을 수동으로로드하려고합니다. 리소스 절약을 위해이 작업을하고 있습니다. iPhone 버전의 그래픽이 필요합니다. iPad 버전의 경우 1 : 1 비율로 사용하고 싶습니다.iPad에서 x2 버전의 이미지를 강제로드 할 때 이미지가 흐리게 표시됩니다.
이렇게하려면 initWithContentsOfFile을 사용할 수 없습니다. iOS가 x2를 파일 이름에 추가하더라도 x1 버전을 제공하기 때문입니다. 대신이 코드를 사용합니다.
NSString *filename = [myImage filenameWithSuffix:@"@2x"];
UIImage *image = [[UIImage alloc] initWithCGImage:[[UIImage imageWithData:[NSData dataWithContentsOfFile:filename]] CGImage]
scale:1.0
orientation:UIImageOrientationUp];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
그래도 작동합니다. 저는 그것이 x2 버전을 포착하고 있는지 100 % 확신합니다 (확실히 그 그래픽을 변경했습니다).
그러나 화면에 표시 될 때 정확한 크기로 흐리게 표시됩니다. 사실 x1 버전이 200 %까지 날려 버린 것처럼 보입니다. 따라서 iOS는 내 이미지에 이상한 일을하고 있습니다.
픽셀 경계에서 이미지를 그려야합니다.
UPDATE :
내가 X2 접미사없이 다른 이미지 파일을 생성하고로드 initWithContentsOfFile를 사용하더라도, 그것은 여전히 흐려입니다. 따라서 이것은로드되는 것과는 아무런 관련이 없습니다.
픽셀 정렬 이외에 이미지가 왜곡 될 수 있습니까?
나는 스크린 샷을 찍었고 Photoshop에서 원본 이미지와 비교했다는 점에 유의하십시오. 정확히 같은 크기이므로 스케일링은 문제가 아닙니다.
규모를 지정하지 않아도됩니다. 정상적인 이름을 사용하고 OS가 "@ 2x"를 잡으려고 했습니까? –
이것은 x2 측면과 아무 관련이 없습니다. 자세한 내용은 내 업데이트를 참조하십시오. – tarmes