Въпрос относно наслагването на изображения върху бутон

Здравейте на всички майстори! Въпросът е следният - има бутон TPNGButton - искам да насложа едно изображение върху друго (2 PNG файла). Едната със запълнен фон, другата с прозрачен. Как да го направя - кажете ми?

vegarulez ( 2010-02-17 14:54 ) [1]

Нужда от помощ. никой ли не е попадал на това?

> [0] vegarulez (17.02.10 12:01) > Искам да насложа едно изображение върху друго (2 PNG файла)наслагване

vegarulez ( 2010-02-17 15:04 ) [3]

Как да го направим. Имам два файла, ако кача едно изображение - фона - той се рисува, ако след това кача втория - той не застъпва първия, а естествено преначертава самото платно. Как да го направя така, че да не преначертава платното, а да се наслагва върху първото заредено изображение?

> [3] vegarulez (17.02.10 15:04) > Имам два файланаправете един и го наслагвайте правилно

vegarulez ( 2010-02-17 15:07 ) [5]

Грубо казано, рамката е приемлива - това е първото изображение - второто изображение - снимка на човек - когато се наслагва, се оказва - картина, портрет Второто изображение във формат PNG е направено с изрязване на фона. тези. когато се постави така, че да се окаже на фона на първото изображение.

vegarulez ( 2010-02-17 15:08 ) [6]

> [6] vegarulez (17.02.10 15:08)var png1, png2: TPNG ; begin png1.create; png2.create; png1.loadfromfile("frame.png"); png2.loadfromfile("rozha.png"); png1.Somehow_using_TPNG_methods .combine(png2); PNGButton.PNGProperty.Assign(png1); png1.безплатно; png2.free; край;

vegarulez ( 2010-02-17 16:47 ) [9]

Какъв подробен отговор))Pasib - цвилене)

Всъщност аз също питам за тези методи. има един куп от тях. Липсва помощ. ( Мога да публикувам компонента.

vegarulez ( 20.02.2010 12:34 ) [10]

майстори. nid помощ.

> [9] vegarulez (2/17/10 16:47) > Мога да очертая компонентаНапример, намерих готин компонент и е излишно да го разбирам. Веднага след като го публикувам, вие го изтегляте, инсталирате го в IDE и също го разбирате, след което ми обяснявате всичко по пацакски начин. :)

vegarulez ( 2010-02-23 12:54 ) [12]

И кой казва, че владея програмирането. Тогава не бих писал във форума за начинаещи. Просто се опитвам да направя това:

PNGBT.PictureDefault.LoadFromFile("./picture/bt_"+ inttostr(bt_pos[i+1])+".png"); влизане:=TPicture.Create; logon.Bitmap.W > logon.Bitmap.Height:=round(100); logon.Bitmap.Transparent:=true; logon.Graphic:=PNGBT.PictureDefault.Graphic; PNGBT.PictureDefault.LoadFromFile("./picture/bt_"+ inttostr(bt_pos[i+1])+"_1.png");logon.Bitmap.Canvas.StretchDraw(Rect(0,0,200,100),PNGBT.PictureDefault.Graphi c);PNGBT.PictureDefault.GB ra phic:=logon.Graphic; влизане.безплатно;

Редът, подчертан с удебелен шрифт - чот не оре, както искате.

добре, логиката е следната - наслагването ще отиде в TPicture и след това ще се зареди в TPNGButton

vegarulez ( 2010-02-23 12:59 ) [13]

> [12] vegarulez (02/23/10 12:54 PM) > logon:TPicture;не ви трябва вижте какъв вид обект има в PNGBT.PictureDefault ето два от тях и ги създайте, след това рисувайте върху един от тях с техните методи за рисуване, заредете крайната картина в PNGBT.PictureDefault. Сега нямам времезанимавам се с нестандартни компоненти, които все още нямам.

вероятно нещо подобно: var Png: TPNGObject; begin Png:=TPNGObject.Create; опитайте PNGButton.ImageNormal.CreateBlank(COLOR_RGB, 8, PNGButton.Width, PNGButton.Height); Png.LoadFromFile("rozha.png"); PNGButton.ImageNormal.Canvas.StretchDraw(PNGButton.ClientRect, Png); Png.LoadFromFile("ramka.png"); PNGButton.ImageNormal.Canvas.StretchDraw(PNGButton.ClientRect, Png); накрая Png.Free; край; край; Въпреки че, съдейки по кода в [12], ние използваме различни TPNGButtons. Моят няма свойство PictureDefault.

> Какъв подробен отговор)) Благодаря ви - цвилене)Отговорът е повече от. Причинява цвилене - отидете на работа на хиподрума. Спрете да се смеете - използвайте обикновен бутон, обикновен bmp и всички изобразени опции в списъка с изображения. Усвоете поне това.

vegarulez ( 2010-02-24 07:16 ) [20]

Пейлин. Е, избухна направо полемика по съществото на въпроса. Забележка - всъщност не попитах в темата как да работя с bmp или списък с изображения.

А сега по съществото на въпроса: 2 направи 2 TPNGбутона, както ме посъветвахте - запълни рамката и лицето. И аз се опитвам да направя - наслагване (маркирано с удебелен шрифт). Но в този случай той не рисува абсолютно нищо. Не знам защо. Аз го направих по друг начин през TImage на Button2Click - по принцип всичко работи. но Mlyn иска да разбере защо Button1Click не оре??

процедура TForm1.Button1Click(Sender: TObject); beginPNGButton3.PictureDefault.Bitmap.Canvas.StretchDraw(PNGButton3.ClientRect,PNG Button1.PictureDefault.Graphic); //PNGButton3.PictureDefault.Bitmap.Canvas.StretchDraw(PNGButton3 .ClientRect, PNGButton2.PictureDefault.Graphic);PNGButton3.Repaint; PNGButton3.Refresh; end;

процедураTForm1.Button2Click(Sender: TObject); begin Image1.Canvas.StretchDraw(Image1.ClientRect,PNGButton1.PictureDefault.Graphic); Image1.Canvas.StretchDraw(Image1.ClientRect,PNGButton2.PictureDefault.Graphic); PNGButton 3.PictureDefault:=Image1.P икона;

Ps - моля за коментари по същество. относно списъка с BMP изображения и така нататък - не тук моля.

> Не знам защовероятно бутонът.> по съществоизследването на неизвестен компонент на трета страна.

vegarulez ( 2010-02-24 09:12 ) [22]

о Да, трябва да си Петросян.

Ако няма какво да се каже по същество защо флуд. IMHO.

> [22] vegarulez (02/24/10 09:12)Млъкни или темата ти ще бъде затворена. или да спра да ти отговарям.

> [20] vegarulez (02/24/10 07:16 AM) > Ps - моля, коментари по съществоЗнаете ли какво, по същество. Вече изтеглих, инсталирах един TPNGButton и дори написах пример за използването му. Предлагате ли да ги изтеглите всички от кошчето? Влязох във форума с нестандартен компонент, проявете учтивост и търпение, докато чакате отговор на въпроса си. И за да отговорите по-бързо, бъдете по-подробни и отново по-учтиви..

vegarulez ( 2010-02-24 10:06 ) [25]

Компонентът, който използвам - ще го публикувам тук - ако не е трудно, вижте (735 kb) http://slil.ru/28696488

Просто разбирам от горния пример, че имаме малко по-различни компоненти, които използваме.

Следователно, действителният въпрос е как да го направите, без да включвате TImage.

> [25] vegarulez (02/24/10 10:06 AM) > ако не е трудно да се видиСъжаляваме, няма време. ако имам време, може би ще погледна. Ако няма значение, намерете pngimage156.zip в него същия TPNGButton, койтоРазбрах го, има помощ за него (eng) и няколко примера (в помощ) (Той е в Yandex на преден план)

vegarulez ( 2010-02-24 11:04 ) [27]

Ааа вече го гледах. Разбирам, че сте го разбрали) Току-що погледнах в примерите там в помощта - подобно обжалване на компонента, както сте написали по-горе. ДОБРЕ. ако имаш време виж - ако не е трудно.