Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Конвертация картинок в Internet Explorer в TBitMap

17K
26 июля 2009 года
jack marked
20 / / 12.11.2006
Мне необходимо картинки в Internet Explorer конвертировать в TBitMap.
C IE Работаю через TInternetExplorer.
В интернете нашёл что любой HTML элемент можно какстить к IHTMLElementRender и потом уже звать метод DrawToDC. Но делфи даёт эксепшн что такой интерфейс незаимплеменчён.
 
Код:
const
  IID_IHTMLElementRender: TGUID = '{3050F669-98B5-11CF-BB82-00AA00BDCE0B}';

type
  IHTMLElementRender =  interface(IUnknown)
    ['{3050F669-98B5-11CF-BB82-00AA00BDCE0B}']
    function DrawToDC(_hDC: HDC): HResult; stdcall;
    function SetDocumentPrinter(bstrPrinterName: WideString; _hDC: HDC): HResult; stdcall;
  end;

Вариант со скачиванием каринок по src Не предлагать, не подходит.
Вот вариант функции -
Код:
function GetBitMapFromInterface(Int: IUnknown): TBitMap;
var
  Render: IHTMLElementRender;
  Image: IHTMLImgElement;
begin
  Result := nil;
  if Int = nil then
    Exit;
  if Int.QueryInterface(IHTMLImgElement, Image) <> S_OK then
    Exit;
  if Image.QueryInterface(IHTMLElementRender, Render) <> S_OK then
    Exit; // Тут вываливается
  if Render = nil then
    Exit;
  if (Image.Width < 1) or (Image.Height < 1) then
    Exit;
  Result := TBitMap.Create;
  Result.Width := Image.Width;
  Result.Height := Image.Height;
  Result.PixelFormat := pf24bit;
  Render.DrawToDC(Result.Canvas.Handle);
end;


Помогите сконверить кортинки в TBitMap.
60K
29 апреля 2010 года
izogfif
1 / / 29.04.2010
Если есть решение, поделитесь, пожалуйста.
303
29 апреля 2010 года
makbeth
1.0K / / 25.11.2004
Какой код ошибки возвращает Image.QueryInterface?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог