Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.12.2014, 19:35
Last Living Man Last Living Man вне форума
Прохожий
 
Регистрация: 10.11.2011
Сообщения: 25
Репутация: 513
По умолчанию GDI+ TGPImage и буфер обмена

Доброе время суток. У меня возникла проблема копирования/вставки изображений из буфера обмена в классы GDI+ (TGPImage и TGPBitmap).

Вот что примерно у меня получилось, но это по моему слишком громоздко:
procedure TMainForm.LoadImage;
Код:
var mstr: TMemoryStream;
    istr: IStream;
    bmp: TBitmap;
begin
  CloseImage;
  mstr := TMemoryStream.Create;
  bmp  := TBitmap.Create;
  try
    bmp.Assign(Clipboard);
    istr := TStreamAdapter.Create(mstr, soOwned) as IStream;
    bmp.SaveToStream(mstr);
    OriginalImg := TGPImage.Create(istr);
    PaintBox.Repaint;
  finally
    FreeAndNil(bmp);
  end;
end;

и вот еще:
Код:
var g:IGPGraphics;
    b:TBitmap;
    j:TJPEGImage;
    dRect: TGPRectF;
begin
  b := TBitmap.Create;
  b.Width := WidthSpEdt.Value;
  b.Height := HeightSpEdt.Value;
  j := TJPEGImage.Create;
  g := TGPGraphics.Create(b.Canvas.Handle);
  g.InterpolationMode := InterpolationModeHighQualityBicubic;
  dRect.Initialize(0,0, b.Width, b.Height);
  try
    g.DrawImage(OriginalImg, dRect);
    with j do
    begin
      CompressionQuality  := 100;
      Performance         := jpBestQuality;
      Scale               := jsFullSize;
      PixelFormat         := jf24Bit;
      Assign(b);
      Compress;
    end;
    Clipboard.Assign(j);
    PaintBox.Repaint;
  finally
    FreeAndNil(b);
    FreeAndNil(j);
  end;
end
;

Надеюсь кто нибудь придумает более оптимальное решение...?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:23.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter