Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2009.12.27;
Скачать: [xml.tar.bz2];

Вниз

GDI+ и изображения   Найти похожие ветки 

 
kblc   (2008-01-26 00:14) [0]

Уважаемые мастера,
у меня к вам вопрос...

есть возможность вывести изображение (TGPBitmap, TGPImage)  внутри произвольного региона?

т.е. конкретно мне нужно сделать вот что:
взять изображение (Его координаты (0,0), (10,0), (0,12),(10,12)) 10pix Х 12pix и натянуть его на вот такой регион: (0,0),(10,4),(0,12),(10,8).


 
antonn (work)   (2008-01-26 09:50) [1]

поищи "афинное преобразование" и "перспективное преобразование". ссылку бы дал, если бы помнил.


 
antonn (work)   (2008-01-26 09:52) [2]

возможно в самом ГДИ+ уже есть такая фича)


 
kblc   (2008-01-26 15:32) [3]

есть конечно вариант
TGPGraphics.FillPath(Brush:TGPBrush; Path:TGPGraphicsPath);
где Brush: TGPTextureBrush...

но(!) это тоже самое, что и установить область отрисовки (Clip) и рисовать картинку.

((

antonn (work)
афинное преобразование - это ж не то, или я не прав?

а вот по поводу перспективного преобразования я ничего не нашёл.. (


 
antonn ©   (2008-01-26 21:23) [4]

вот пример, как вписать в произвольный выпуклый четырехугольник:
http://desksoft.ru/index.php?forum=13&th=67


 
kblc   (2008-01-27 11:17) [5]

antonn,
Благодарю за помощь. Но я хотел попробовать это сделать средствами GDI+.

Если в этой библиотеке нет такой возможности, то я, конечно, поспользуюсь вашим ответом.


 
гость   (2008-01-28 18:01) [6]

ответ на вопрос здесь

procedure Tboard.mydraw;
var
imageboardgraphics : TGPGraphics;
begin
 imageboardgraphics := TGPGraphics.Create(imageboard.Picture.Bitmap.Canvas.handle);
 imageboardgraphics.SetInterpolationMode(InterpolationModeHighQualityBicubic);
 imageboardgraphics.DrawImage(
                              Bmp,
                              imageboardrect,
                              0, 0,bmp.getwidth,bmp.getheight, UnitPixel
                              );

  imageboardgraphics.Free;

 tform(tpanel(owner).GetParentComponent).Refresh;
 end;


 
kblc ©   (2008-01-29 06:41) [7]

А где тут задаётся произвольный регион, если при
imageboardgraphics.DrawImage(
                             Bmp,
                             imageboardrect,
                             0, 0,bmp.getwidth,bmp.getheight, UnitPixel
                             );

0 - Left,
0 - Top,
bmp.getwidth - Width
bmp.getheight - Height

Где же задание региона, внутрь которого и нужно выводить графику?


 
MultIfleX   (2008-01-29 11:55) [8]

есть возможность вывести изображение (TGPBitmap, TGPImage)  внутри произвольного региона?

ответ: да есть, смотри стандартные примеры идущие с GDI+ для delphi, там есть пример вывода в произвольный четырёхугольник.


 
capkoh ©   (2008-01-30 21:04) [9]

Насколько я понял, речь идёт о выводе прямоугольника в трапецию.
Но в GDI+ предусмотрено рисование только в параллелограммы, вроде...


 
Рамиль ©   (2008-01-31 09:58) [10]


> capkoh ©   (30.01.08 21:04) [9]

Можно сделать любую афинную трансформацию.


 
cerber   (2008-02-05 22:17) [11]

А Директ Х никто не читал?



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2009.12.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
6-1208506264
VK
2008-04-18 12:11
2009.12.27
передача файлов по сети


4-1225560998
POP
2008-11-01 20:36
2009.12.27
Добраться до PortName, через SetupAPI.


2-1257822350
Kostas
2009-11-10 06:05
2009.12.27
MS Word 2000 - Работа с копированием текста.


1-1230135789
du_hast
2008-12-24 19:23
2009.12.27
Нужно получить кол-во Chart-ов в текущем Excel Sheet-е


15-1256927974
miek
2009-10-30 21:39
2009.12.27
irrlicht





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский