سؤال

أقوم بتدوير صورتي بالرمز التالي:

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

ولكنها ليست ذات حواف حادة، هل يعرف أحد حلاً لذلك؟

هذه هي الصورة التي أحصل عليها:

enter image description here

هل كانت مفيدة؟

المحلول

تبدو حواف الصورة نفسها خشنة لأنه تم وضعها في شبكة البكسل مباشرة، ولا يتم استيفاءها. أقرب الاستيفاء الجار هو أبسط نوع من الاستيفاء، حيث إذا كان لديك شبكة بكسل A وقمت بنقل صورتك إلى شبكة البكسل B، فسيتم اختيار وحدات البكسل الموجودة في الشبكة B ببساطة عن طريق اختيار أقرب بكسل من الشبكة A.تختار أشكال الاستيفاء الأخرى متوسطًا مرجحًا لأقرب وحدات البكسل للوصول إلى قيمة البكسل في الشبكة B.

تبدو صورتك، بحوافها الخشنة، وكأنها تستخدم الاستيفاء المجاور الأقرب، والذي قد يكون النوع الافتراضي للاستكمال الداخلي في التحويل المتقارب على جهاز iPhone.

عند استخدام نظام استيفاء آخر غير أقرب جار، سوف تحصل على اسم مستعار التأثيرات، حيث لا يكون أخذ العينات الفرعية مثاليًا أثناء النقل من شبكة بكسل إلى أخرى.هذا التأثير يجعل الحواف في الصورة نفسها تبدو أكثر ضبابية مما كانت عليه.

نصائح أخرى

وعن طريق CALayer وUIImageView لتنقيط الصورة سوف نقدم أفضل الحواف.

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 التي تمكن الحواف حواف: UIViewEdgeAntialiasing

وكما هو موضح في الجواب التالي: <لأ href = "https://stackoverflow.com/questions/7080325/when-i-rotate-an-uiimageview-with-the-transform-property-the-edges-pixellate "> عندما تدوير UIImageView مع الخاصية تحويل، حواف pixellate

وأبسط حل:

<اقتباس فقرة>   

وببساطة إضافة هذا الزوج قيمة المفتاح إلى Info.plist الخاص بك:   UIViewEdgeAntialiasing المقرر أن YES.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top