Форум: "Начинающим";
Текущий архив: 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.067 c