Вы сказали CG, но не указали свой подход.
Использование контекста рисования или растрового изображения:
CGContextSetInterpolationQuality(gtx, kCGInterpolationHigh);
CGContextSetShouldAntialias(gtx, true); << default varies by context type
CGContextDrawImage(gtx, rect, image);
и убедитесь, что ваши виды и их слои не меняют размер изображения снова. У меня были хорошие результаты с этим. Возможно, другие взгляды влияют на ваш взгляд или контекст. Если это выглядит не очень хорошо, попробуйте сделать это отдельно, чтобы проверить, не искажает ли что-то ваше представление / изображение.
Если вы рисуете в растровом изображении, вы создаете растровое изображение с заданными размерами, а затем рисуете в нем.
В идеале вы должны поддерживать соотношение сторон.
Также обратите внимание, что это может быть довольно ресурсоемким - многократное рисование / масштабирование в HQ будет стоить много времени, поэтому вы можете вместо этого создать копию с измененным размером (используя CGBitmapContext
).