문제

다음 코드로 이미지를 회전하고 있습니다.

CGAffineTransform rotate = CGAffineTransformMakeRotation( [ratio floatValue] );
[imageView setTransform:rotate];

그러나 그것은 날카로운 가장자리가 없으며 누군가가 이것에 대한 해결책을 알고 있습니까?

내가 얻는 이미지는 다음과 같습니다.

enter image description here

도움이 되었습니까?

해결책

이미지 자체의 가장자리는 픽셀 그리드에 직접 배치되어 보간되지 않기 때문에 들쭉날쭉 해 보입니다. 가장 가까운 이웃 보간 픽셀 그리드 A가 있고 이미지를 픽셀 그리드 B로 옮기면 그리드 B의 픽셀을 그리드 A에서 가장 가까운 픽셀을 선택하여 선택하여 가장 간단한 보간입니다. 그리드 B에서 픽셀 값에 도달 할 가장 가까운 픽셀

들쭉날쭉 한 가장자리가있는 이미지는 가장 가까운 이웃 보간을 사용하는 것처럼 보이며, 이는 iPhone의 아핀 변환에서 기본 유형의 보간 유형 일 수 있습니다.

가장 가까운 이웃 이외의 다른 보간 체계를 사용하면 별칭 한 픽셀 그리드에서 다른 픽셀 그리드로 전송할 때 서브 샘플링이 완벽하지 않은 효과. 그 효과는 이미지 자체의 가장자리가 다른 것보다 흐릿 해 보이게 만듭니다.

다른 팁

UIIMAGEVIEW의 CALAYER를 사용하여 이미지를 Rasterize하면 최고의 항아리아를 제공합니다.

imageView.layer.shouldRasterize = YES;

이미지에 1px 투명 테두리를 추가하십시오

CGRect imageRect = CGRectMake(0, 0, image.size.width, image.size.height);
UIGraphicsBeginImageContext( imageRect.size ); 
[image drawInRect:CGRectMake(1,1,image.size.width-2,image.size.height-2)];
image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

이미지를 변환 할 때마다 (90 ° 증분을 제외하고) 픽셀 보간으로 인해 약간 더 부드러운 가장자리가 발생합니다.

info.plist로 설정할 수있는 키가 있습니다.

다음 답변에 설명 된대로 : 변환 특성으로 UIIMageView를 회전하면 가장자리 Pixellate

가장 간단한 솔루션 :

이 키 값 쌍을 info.plist에 추가하기 만하면됩니다.

https://stackoverflow.com/a/12066215/1469060

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top