После маскировки изображение выглядит размытым - PullRequest
0 голосов
/ 12 мая 2009

Я разрабатываю одну игру, в которой я хочу увеличить изображение, в котором находится изображение увеличителя. Для этого я использую концепцию маскировки. После маскировки я увеличиваю изображение, но выглядит размытым. И я хочу, чтобы изображение было более четким, как будто мы смотрим через лупу винтовки. Так что, если у кого-то есть решение, пожалуйста, ответьте

Ответы [ 2 ]

1 голос
/ 13 мая 2009

вы уверены, что проблема в маскировке?

возможно, ваши ресурсы имеют слишком низкое разрешение? уменьшенные изображения с высоким разрешением всегда выглядят лучше, чем увеличенные изображения с низким разрешением. Может быть, вам нужно взглянуть на проблему задом наперед ... чтобы ваше изображение при просмотре через увеличительное стекло винтовки [видимость?] Просматривалось с разрешением 1: 1, а когда не просматривалось через прицел, оно уменьшалось (разрешение 1: 2) ?). таким образом, ваш «нормальный» режим - это режим масштабирования, а «увеличенный вид» - это просто изображение с соотношением 1: 1.

0 голосов
/ 14 мая 2009

Если у вас есть UIImage, размер которого 293x184, но вы создаете UIImageView с начальным размером 40x30, iPhone масштабирует UIImage в соответствии со свойством: contentMode. ContentMode по умолчанию: UIViewContentModeScaleToFill, который масштабирует ваше изображение.

Таким образом, несмотря на то, что вы начали с большого изображения, оно теперь имеет размер только 40x30 и отображается с разрешением 40x30. Когда вы увеличиваете изображение, оно все равно остается 40х30, но отображается с большим размером, который вызывает размытие.

Одним из решений будет замена изображения после увеличения, тогда у вас будет совершенно новый UIImage с полным разрешением.

[self.view setFrame:reallyBigFrame];
[self.view setImage:newUIImage];

Другой вариант: сначала поместить UIImage в полноразмерный UIImageView размером 293x184, а затем использовать AffineTransform для его уменьшения:

view.transform = CGAffineTransformScale(view.transform, 0.25, 0.25);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...