Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Вопрос про наложение изображений на кнопке.   Найти похожие ветки 

 
vegarulez   (2010-02-17 12:01) [0]

Привет всем мастерам!
Вопрос в следующем - есть кнопка TPNGButton - хочу наложить одно изображение на другое(2 PNG файла). Одно с залитым фоном, другое с прозрачным. Как это сделать - подскажите?


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

Нид хелп... неужели никто с таким не сталкивался?


 
{RASkov} ©   (2010-02-17 15:02) [2]

> [0] vegarulez   (17.02.10 12:01)
> хочу наложить одно изображение на другое(2 PNG файла)

накладывай


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

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


 
{RASkov} ©   (2010-02-17 15:07) [4]

> [3] vegarulez   (17.02.10 15:04)
> У меня два файла

сделай один и накладывай как положено


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

Грубо говоря рамка допустим - это перове изображение - 2-ое изображение - фото человека - при наложении получается - картина, портрет.
2-ое изображение в PNG формате выполнено с обрезкой фона. т.е. при помещении чтобы оно получалось на фоне первого изображения.воть...


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

{RASkov} ©   (17.02.10 15:07) [4]
так как раз в том и вся штука, чтобы оперировать 2-мя файлами. разные рамки и разные фото людей.


 
{RASkov} ©   (2010-02-17 15:15) [7]

> [6] vegarulez   (17.02.10 15:08)

var png1, png2: TPNG<чего-то там>;
begin
 png1.create;
 png2.create;
 png1.loadfromfile("ramka.png");
 png2.loadfromfile("rozha.png");
 png1.Как-то_при_помощи_методов_TPNG<чего-то там>.объеденить(png2);
 PNGButton.PNGProperty.Assign(png1);
 png1.free;
 png2.free;
end;


 
{RASkov} ©   (2010-02-17 15:17) [8]

> png1.create;
> png2.create;

:) png1:=TPNG<чего-то там>.create;


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

Какой развёрнутый ответ )) Пасиб - поржал )

Я собственно про эти методы и спрашиваю... там их мульён.
Хелпа нет. (
Могу выложить компоненту.


 
vegarulez   (2010-02-20 12:34) [10]

мастера.... нид хелп...


 
{RASkov} ©   (2010-02-20 20:53) [11]

> [9] vegarulez   (17.02.10 16:47)
> Могу выложить компоненту

Типа нашел я крутой компонент, а разбираться в нем мне в лом...
Ща как выложу, вы его скачайте, установите в IDE, еще и разберитесь в нем, а посля мне тут все па пацакски растолкуйте.
Так шоли?
Какой же ты рулез если не можешь в одной кнопке разобраться? :)


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

А кто говорит что я рулез в программинге??? Я бы тогда не писал на форуме начинающих. просто я пытаюсь сделать вот так:


var
PNGBT:TPNGButton;
i:integer;
logon:TPicture;
...

         PNGBT.PictureDefault.LoadFromFile("./picture/bt_"+ inttostr(bt_pos[i+1])+".png");
         logon:=TPicture.Create;
         logon.Bitmap.Width:=round(200);
         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.Graphic:=logon.Graphic;
         logon.free;


Строка выделенная жирным - чот не пашет как хочется...

ну как бы логика такая - что наложение пройдёт в TPicture и потом загрузится в TPNGButton


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

{RASkov} ©   (20.02.10 20:53) [11]
если ты рулез - помоги тогда как правильнее сделать...


 
{RASkov} ©   (2010-02-23 14:01) [14]

> [12] vegarulez   (23.02.10 12:54)
> logon:TPicture;

тебе не это нужно
смотри что там за объект в PNGBT.PictureDefault вот их два штуки и создавай, потом и рисуй на одном из них ихими методами рисования, конечный рисунок загружай в PNGBT.PictureDefault....
нет у меня времени сейчас разбираться с нестандартными компонентами которых у меня еще и нет...


 
{RASkov} ©   (2010-02-23 19:44) [15]

примерно так наверное:
var Png: TPNGObject;
begin
 Png:=TPNGObject.Create;
 try
  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);
 finally Png.Free; end;
end;

Хотя судя по коду в [12] разные TPNGButton используем. В моем нет свойства PictureDefault....


 
KilkennyCat ©   (2010-02-24 01:45) [16]


> Какой развёрнутый ответ )) Пасиб - поржал )

Ответ более чем. Вызывает ржание - иди работать на ипподром. Перестанешь ржать - воспользуйся обычной кнопкой, обычным bmp, и всеми отрисованными вариантами в imagelist. Осиль хотя бы это.


 
Германн ©   (2010-02-24 02:02) [17]


> KilkennyCat ©   (24.02.10 01:45) [16]

Ему видите-ли приспичило использовать png.


 
KilkennyCat ©   (2010-02-24 02:41) [18]


> Германн ©   (24.02.10 02:02) [17]

там полупрозрачность, красивая весчь.


 
Германн ©   (2010-02-24 02:57) [19]


> KilkennyCat ©   (24.02.10 02:41) [18]
>
>
> > Германн ©   (24.02.10 02:02) [17]
>
> там полупрозрачность, красивая весчь.
>

Дык и я о том же.


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

Палин... ну прям полемика разразилась по существу вопроса...
На заметку - я вообще-то не спрашивал в теме как мне работать с бмп или с имэдж листом...

А теперь по существу вопроса:
2 {RASkov}
сделал 2 TPNGbutton`а, как ты посоветовал - залил туда рамку и рожу. И пытаюсь сделать - наложение (выделено жирным). Но он вообще ничего в этом случае не рисует... не знаю по чему. Сделал по другому через TImage на Button2Click- впринципе всё рабит. но млин охота понять, почему не пашет Button1Click??

procedure TForm1.Button1Click(Sender: TObject);
begin
PNGButton3.PictureDefault.Bitmap.Canvas.StretchDraw(PNGButton3.ClientRect,PNG Button1.PictureDefault.Graphic);
//PNGButton3.PictureDefault.Bitmap.Canvas.StretchDraw(PNGButton3.ClientRect,PNGBut ton2.PictureDefault.Graphic);

PNGButton3.Repaint;
PNGButton3.Refresh;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Image1.Canvas.StretchDraw(Image1.ClientRect,PNGButton1.PictureDefault.Graphic);
Image1.Canvas.StretchDraw(Image1.ClientRect,PNGButton2.PictureDefault.Graphic);
PNGButton3.PictureDefault:=Image1.Picture;


Ps - плз коменты по существу... про имэйдж лист бмп и прочее - не сюда плз.


 
KilkennyCat ©   (2010-02-24 09:03) [21]


> не знаю по чему

наверное, по кнопке.

> по существу

изучение стороннего, неизвестного компонента.


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

KilkennyCat ©   (24.02.10 09:03) [21]

Ога... Да вы наверно петросян...

Если нечего по существу сказать зачем флудить. имхо.


 
{RASkov} ©   (2010-02-24 09:18) [23]

> [22] vegarulez   (24.02.10 09:12)

Приостынь, а то ведь закроют твою ветку.... или перестанут тебе отвечать...


 
{RASkov} ©   (2010-02-24 09:23) [24]

> [20] vegarulez   (24.02.10 07:16)
> Ps - плз коменты по существу

Знаешь что, по существу... я уже скачал, установил один TPNGButton и даже пример тебе написал с его использованием.
Предлогаешь их все выкачать с помойки?
Залез на форум с нестандартным компонентом, прояви вежливость и терпение в ожидании ответа на твой вопрос...
А что бы быстрее отвечали будь подробнее и, опять же, вежлевее..


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

{RASkov} ©   (24.02.10 09:23) [24]
Ни в коем разе никого не хотел обидеть - спасибо большое за ответы. Но просто хочется по существу. Если я спрашиваю про PNG зачем советовать про имэйдж лист и БМП?
Тебе - большое спасибо - пытался сделать как ты советовал, потом понял что -то не получается, переработал немного свою версию через Timage - получилось, о чём писал выше.

Тот компонент который я пользую - выложу вот сюда - если не трудно посмотри (735 кб)
http://slil.ru/28696488

Просто я из вышепривёденного тобой примера, понимаю что у нас немного разные компоненты, которые пользуем.

Поэтому актуален вопрос как сделать без привлечения TImage...


 
{RASkov} ©   (2010-02-24 10:27) [26]

> [25] vegarulez   (24.02.10 10:06)
> если не трудно посмотри

Извини, времени нет... если появится время возможно гляну.
Если не принципиально, найди pngimage156.zip в нем тот самый TPNGButton который мне попался, с ним и справка есть(англ), и немного примеров(в справке)
(Он в яндексе в первых рядах)


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

Аха - смотрел его уже. Я так и понял что он тебе попался ) Я в примерах там в справке как раз и посмотрел - похожее обращение к компоненте, как ты писал выше. Ок. если будет время глянь - если не сложно.



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

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.072 c
11-1221227877
Kukushka-Q
2008-09-12 17:57
2010.08.27
DLL для MS Access


2-1272198220
rendall
2010-04-25 16:23
2010.08.27
сочетание клавиш в фоновом режиме


15-1275030405
Rembo
2010-05-28 11:06
2010.08.27
При 500 Internal Server Error idHTTP не читает страницу


6-1205426277
Dima
2008-03-13 19:37
2010.08.27
WinAPI + скачивание файла по http (просто)


2-1275132390
shkurkin
2010-05-29 15:26
2010.08.27
Ньюансы работы с COM-портами и асинхронный ввод/вывод