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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.057 c
3-1240340701
VoznikVopros
2009-04-21 23:05
2010.08.27
Как произвести "выделение" в DBLookupListBox1 согласно № эл. в БД


2-1274285164
lewka
2010-05-19 20:06
2010.08.27
Компас 3D и Delphi. Работа с эскизами


2-1273938390
Zoom
2010-05-15 19:46
2010.08.27
Можно ли управлять классом через TComponent ?


2-1274121959
Semen
2010-05-17 22:45
2010.08.27
Объединение 3-х полей таблицы Paradox в одно.


2-1269178623
Delphist2
2010-03-21 16:37
2010.08.27
динамический массив





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский