2012-07-15 5 views
6

웹에서 가져와야하는 이미지가 있습니다. URL의 데이터 만 사용하면됩니다.
망막 디스플레이에 올바르게 표시해야합니다.
웹에서 이미지를 가져 오면 여전히 픽셀 화되어 있습니다. 이미지의 눈금을 망막 디스플레이 (2.0)로 설정해야하지만, 뭔가 빠져 있어야합니다. 여기까지 내가 한 것입니다.URL의 이미지를위한 망막 디스플레이

UIImage *img = [UIImage imageWithData:[NSData dataWithContentsOfURL:@"http://www.msdomains.com/tmp/test.png"]; 

CGRect labelFrame = CGRectMake(0,0,64,64); 
UIImageView *imageView = [[UIImageView alloc] initWithFrame:labelFrame]; 
imageView.contentScaleFactor = [UIScreen mainScreen].scale; 

[imageView setImage:img]; 
[self addSubview:imageView]; 
[imageView release]; 

답변

3

귀하의 코드가 그대로 꽤 많은 일을해야 도움이되기를 바랍니다. 이미지의 원래 크기는 무엇인지 모르지만 64x64 픽셀이라고 생각합니다. 올바르게 크기를 조정하려면 원본 이미지가 128x128 픽셀이어야합니다. 테스트로

다음 코드는 제대로 시뮬레이터에 레티 나 해상도에 내 사진을 표시하고, 내 아이폰 4에 다음 UIImageView이 375x249.5 점이다

UIImage *img = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.seenobjects.org/images/mediumlarge/2006-08-19-native-lilac.jpg"]]]; 

CGRect labelFrame = CGRectMake(0, 0, 375, 249.5); 
UIImageView *imageView = [[UIImageView alloc] initWithFrame:labelFrame]; 

[imageView setImage:img]; 
[self.view addSubview:imageView]; 

주,의 절반 원본 사진 (픽셀) 크기. 또한 contentScaleFactor 설정은 필요하지 않은 것처럼 보입니다.

(이 외에도 URL에 @2x을 지정하면 도움이 될 것입니다.이 경우 dataWithContentsOfURL:을 호출하면 파일 이름이 추적되지 않고 불투명 한 데이터가 반환됩니다. 불투명 한 데이터는 imageWithData:으로 전달되어 이미지를로드합니다.

7

URL 끝에 #@2x.png을 추가하십시오. URL을 변경하지는 않지만 이미지는 망막 2x 이미지로 인식됩니다. 그것은 나를 위해 일했지만, 나는이 방법을 SDWebImage과 함께 사용했다.

http://www.msdomains.com/tmp/test.png#@2x.png을 사용하십시오.

+0

진짜인가요? – Ali

+0

이 나를 위해 작동하지 않습니다 –

+0

이 농담입니까? – deadlock

0

망막 디스플레이의 경우 원본 이미지의 정확히 두 배인 해상도로 동일한 이미지를 추가하십시오. 이 이미지 이름 끝에 "@ 2x"를 추가하는 것을 잊지 마세요. 예 : "image_header.png"는 OS에 의해 자동으로 망막 디스플레이 선택됩니다 다음 이미지 320x100 크기의 이름 "[email protected]" (크기 640x200)와 다른 이미지입니다 ... 는

+0

여기에서 요점을 놓치고 있습니다. 주 번들에서로드 된 이미지는 맞습니다. – Ali

0

이미지 URL을 직접 imageView에 할당하면 망막으로 인식되지 않습니다.

imageView.imageURL = [NSURL URLWithString:@"http://example.com/image.png"]; 

은 망막 이미지를 제공하지 않습니다.

이미지가 200x200 인 경우 이미지 뷰가 100x100 인 경우 다운로드 한 이미지에서 100x100을 가져와 망막 장치의 픽셀 이미지를 표시합니다.

해결책은 imageURL 대신 imageView의 image 속성을 사용하는 것입니다.

imageView.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://example.com/image.png"]]]; 

이렇게하면 200x200 이미지가 100x100의 imageView에 할당되므로 이미지가 픽셀 화되지 않습니다.

관련 문제