crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Как реализовать тэг <img> ?
mezmay
  опции профиля:
сообщение 7.10.2010, 13:17
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

Спасибо сказали: 16 раз(а)




Репутация:   1  


Задача - написать программу, которая выводила бы на экран google карту.
В google для этого предусмотрен специальный запрос:

http://maps.google.com/staticmap?center=46.714728,-74.998672&zoom=14&size=512x512&maptype=mobile&markers=40.702147,-74.015794,blues%7C40.711614,-74.012318,greeng%7C40.718217,-73.998284,redc&key=MY_KEY


предполагается вставка этой ссылки в тэг <img> на своей странице. При этом на странице будет отображена google карта.

Я создал простой html-файл с требуемым содержанием:

<img src="http://maps.google.com/staticmap?center=46.714728,-74.998672&zoom=14&size=512x512&maptype=mobile&markers=40.702147,-74.015794,blues%7C40.711614,-74.012318,greeng%7C40.718217,-73.998284,redc&key=MY_KEY" >

если открыть это в браузере, то все отлично отображается.

Но мне надо отобразить это в своей программе. Прямо вставить тэг <img> со ссылкой на картинку из интернета нельзя.
Я решил загружать картинку с помощью QHttp. Реализация:
bool cwin::getFile( const QUrl &url )
{
    bool result = false;

    if(url.isValid())
    {

        if(url.scheme() == "http")
        {
            if(!url.path().isEmpty())
            {

                QString localFileName = QFileInfo(url.path()).fileName();
                if(localFileName.isEmpty())
                    localFileName = "img.jpg";

                file.setFileName(localFileName);
                if(file.open(QIODevice::WriteOnly))
                {

                    internet.setHost(url.host(), url.port(80));
                    internet.get(url.path(), &file);
                    internet.close();
                    result = true;
                }
            }
        }
    }

    return result;
}

void cwin::onDone()
{

    file.close();

    close();
}


этот код корректно грузит картинки, если ссылка прямо указывает на jpeg. Например с такого адреса:
http://www.rambler.ru/im/81211543ca677b28a1c8f64bb0b5a975/c220x110/img.beta.rian.ru/images/15179/09/151790915.jpg

Но в случае c google картами не работает. Значит тем, что я написал, нельзя сымитировать обработку тэга <img> в браузерах. Как это правильно сделать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
kwisp
  опции профиля:
сообщение 7.10.2010, 16:20
Сообщение #2


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


mezmay,
открой примеры использования webkit и посмотри как им пользоваться.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.11.2024, 23:51