내 회전 이미지에는 날카로운 모서리가 없습니다
-
07-07-2019 - |
문제
다음 코드로 이미지를 회전하고 있습니다.
CGAffineTransform rotate = CGAffineTransformMakeRotation( [ratio floatValue] );
[imageView setTransform:rotate];
그러나 그것은 날카로운 가장자리가 없으며 누군가가 이것에 대한 해결책을 알고 있습니까?
내가 얻는 이미지는 다음과 같습니다.
해결책
이미지 자체의 가장자리는 픽셀 그리드에 직접 배치되어 보간되지 않기 때문에 들쭉날쭉 해 보입니다. 가장 가까운 이웃 보간 픽셀 그리드 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
제휴하지 않습니다 StackOverflow