Напомните им, что чтение кода может только сказать им, что код делает , не, что это , предположил делать.
Края самого изображения выглядят неровными, потому что они помещаются в пиксельную сетку напрямую, а не интерполируются. Интерполяция ближайшего соседа - это простейший вид интерполяции, при котором, если у вас есть сетка пикселей A и вы перемещаете изображение в сетку пикселей B, пиксели в сетке B выбираются простым выбором ближайшего пикселя из сетки A. Другие формы интерполяции выбирают средневзвешенное значение ближайших пикселей, чтобы получить значение пикселя в сетке B.
Ваше изображение с его неровными краями выглядит так, как будто оно использует интерполяцию ближайшего соседа, которая может быть типом интерполяции по умолчанию для аффинное преобразование на iphone.
Когда вы используете какую-либо другую схему интерполяции, отличную от ближайшего соседа, вы получите эффекты наложения , при которых субдискретизация не идеальна при переходе от одной пиксельной сетки к другой. Этот эффект делает края самого изображения более размытыми, чем они могли бы быть в противном случае.
Каждый раз, когда вы выполняете преобразование изображения (за исключением приращения на 90 °), это приведет к немного более мягким краям из-за интерполяции пикселей.