Поместите изображение из UIWebView в UIImageView - PullRequest
2 голосов
/ 05 февраля 2011

У меня есть UIWebView, скрытый на заднем плане моего приложения, которое загружает сайт, и я хочу поместить одно из загруженных из него изображений в видимый UIImageView.Поскольку загружаемое изображение является капчей, основанной на сеансе PHP, я не могу просто загрузить изображение непосредственно из его URL-адреса в UIImageView, мне нужно получить конкретный экземпляр, который загружается в UIWebView.Может ли кто-нибудь дать мне пару советов о том, как я буду подходить к этому?Кажется, я не знаю, с чего начать ...

Ответы [ 3 ]

4 голосов
/ 05 февраля 2011

Этот фрагмент кода захватывает квадрат 50x50 пикселей с началом координат (50,50) в веб-просмотре.Отрегулируйте положение в соответствии с положением капчи (если вы знаете, что оно всегда в одном и том же месте).

UIImage* theImage;
UIGraphicsBeginImageContext(CGSizeMake(50,50));
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(context, -50, -50 );
[[[self webView] layer] renderInContext:context];
theImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// now do stuff with theImage

Возможно, вам понадобится поместить этот код (или вашу версию) в метод webViewDidFinishLoad: в делегате webView.Веб-просмотры, даже базовые, часто отрисовываются.Если вы захватите изображение слишком рано, вы не получите того, что хотите.

1 голос
/ 05 февраля 2011

Что вы можете попробовать:

  1. Создать javascript, который получает данные изображения в виде строки (попробуйте canvas.getImageData, не уверен, что он реализован в Safari)
  2. Получить эту строку с помощьюstringByEvaluatingJavaScriptFromString
  3. Преобразование строки NSString в NSData
  4. И после инициализации изображения с NSData ...
1 голос
/ 05 февраля 2011

Привет Если вы можете изменить свою страницу PHP, создайте Javascript, который даст вам URL-адрес изображения с картинки. после использования stringByEvaluatingJavaScriptFromString в вашем UIWebView

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...