Форум: "Media";
Текущий архив: 2009.09.27;
Скачать: [xml.tar.bz2];
ВнизВывод изображения повер другого и сохранение всего этого в файл. Найти похожие ветки
← →
Den (2007-11-14 10:09) [0]Здравствуйте.
Подскажите пожалуста как можно решить данную задачу.
Необходимо поверх заданного каким-либо образом изображения вывести какие-либо цифры или изображения меньше размером, а потом полученный результат сохранить в файл. Данная процедура должна производиться где-то около 3000 раз, каждый раз накладывая разные цифпы и картинки и сохраняя в новый файл.
Я в этом дуб дубом, так что пожалуйста подскажите с помощью чего это можно сделать и как.
← →
Михей (2007-11-14 10:46) [1]Необходимо писать Transform Filter, который будет накладывать OSD информацию на видео, ну а потом записывать в файл или выводит на экран... Все это DirectShow. Примеры Transform фильтра есть в DSpack, там же заголовочные базовых классов, описание в SDK. Если Вам, конечно, все это программно надо... Можно также воспользоваться интерфейсом (Sample Grabber Filter) ISampleGrabberCB и методом SampleCB - он напрямую пишет в видеопоток, но лучше первый вариант.
← →
antonn © (2007-11-14 12:35) [2]накладывать нужно картинки?
← →
Den (2007-11-14 13:38) [3]Извините я наверное неправильно написал.
Под словом изображение имелись ввиду русунки, а не видео.
Т.е. рисунки поверх рисунков.
← →
antonn © (2007-11-14 13:57) [4]а форматы рисунков какие?
← →
Jeer © (2007-11-14 15:00) [5]
> Den (14.11.07 13:38) [3]
Это можно сделать с помощью обычного TBitmap, если не стоит задача отображения.
Перед этим имеющиеся файлы формата X преобразуются в формат bmp, а затем обратно в формат X или другой.
← →
Den (2007-11-14 16:09) [6]Постараюсь объяснить как можно более подробно, просто я даже не знаю с какого конца взяться за дело.
Есть фоновая картинка.(http://img248.imageshack.us/img248/1662/85395026xa5.jpg).
Есть картинка значка(http://img135.imageshack.us/img135/3355/89877732ob8.jpg).
И есть некий массив чисел.
В итоге надо получить что-то типа этого(http://img135.imageshack.us/img135/5440/97630245ct2.jpg) в отдельно графическом файле на жёстком диске.
И такие файлы должны делаться пока в массиве не закончаться числа.
Формат картинок фактически не важен.
Помогите пожалуйста.
Если не трудно то хоть с небольшими разъяснениями. Если единственное что на мою просьбу можно ответить это rtfm,то если не затруднит дайте ссылку на нужный fm :)
И если можно хоть небольшой пример в виде кода.
← →
homm © (2007-11-14 17:50) [7]> [6] Den (14.11.07 16:09)
> Есть фоновая картинка.(http://img248.imageshack.us/img248/1662/85395026xa
> 5.jpg).
> Есть картинка значка(http://img135.imageshack.us/img135/3355/89877732ob8.
> jpg).
> И есть некий массив чисел.
> В итоге надо получить что-то типа этого(http://img135.imageshack.us/img13
> 5/5440/97630245ct2.jpg) в отдельно графическом файле на
> жёстком диске.
> И такие файлы должны делаться пока в массиве не закончаться
> числа.
> Формат картинок фактически не важен.
Ну ТЗ ты написал, осталось огласить цену.
Как ты пытался то, покажи, а то в чем помошь нужна — не понятно.
← →
Den (2007-11-14 18:19) [8]
> просто я даже не знаю с какого конца взяться за дело.
Вот в этом то помощь и нужна, я незнаю как это сделать.
Я же не прошу всё сделать за меня, просто подскажите какие компоненты и функции надо использовать для этого господа мастера.
ЗЫ: Я не программист, а инженер. Просто увлекался этим на первом курсе.
А программа нужна для друга, который постоянно раскидывает это всё вручную, вот и хочу помочь.
← →
homm © (2007-11-14 18:40) [9]> [8] Den (14.11.07 18:19)
> Я же не прошу всё сделать за меня, просто подскажите какие
> компоненты и функции надо использовать для этого
[5] уже не подсказка?
← →
Den (2007-11-14 18:52) [10]
> [5] уже не подсказка
как раз сейчас про TBitmap и читаю.
Но не занимаясь этим без малого 4 года это довольно сложно.
Потому помощи и попросил,
← →
Den (2007-11-14 19:07) [11]А вот как именно нарисовать цифры и второй рисунок на первом я не пойму.
Разъясните если не сложно.
вот началоtest:=TBitmap.Create;
test.LoadFromFile("1.bmp");
а как дальше?
← →
Den (2007-11-14 19:17) [12]ага, tbitmap.canvas.draw подошло для второй картинки, но как цифры всёравно не допру.
← →
Den (2007-11-14 19:22) [13]спрошу поточнее.
Есть ли какой нибудь способ нарисовать там цифры кроме как сделать набор картинок от 0 до 9 и уже из них получать необходимое число?
← →
homm © (2007-11-14 20:08) [14]tbitmap.canvas.textout
← →
{RASkov} (2007-11-14 20:18) [15]> [13] Den (14.11.07 19:22)
Вот от нечего делать "слепил" для тебя "примерчик"...
Кинь на форму 1 кнопку(Button1) и 1 чекбокс(CheckBox1)
пропиши обработчики OnCreate для формы и OnClick для кнопки:procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.Left:=0; Button1.Top:=0;
CheckBox1.Left:=80; CheckBox1.Top:=4; CheckBox1.Width:=140;
CheckBox1.Caption:="Сохранить в Lotto.bmp";
Width:=50*9+30; Height:=Button1.Height+50*3+30+GetSystemMetrics(SM_CYCAPTION);
end;
procedure TForm1.Button1Click(Sender: TObject);
var BFon, BLogo: TBitmap; C, R, N: Byte; Rc: TRect; Bt: set of Byte;
begin
BLogo:=TBitmap.Create;
try
//Готовим лого-картинку
with BLogo do begin
Width:=50;
Height:=50;
Canvas.Rectangle(Canvas.ClipRect);
Canvas.Brush.Color:=clInfoBk;
Canvas.Pen.Width:=2;
Canvas.Pen.Color:=clRed;
Canvas.Ellipse(5, 5, 45, 45);
Canvas.Font.Style:=[fsBold];
Canvas.Font.Color:=clNavy;
Canvas.TextOut(10, 18, "Lotto");
end;
BFon:=TBitmap.Create;
try
//Тут "лепим" все картину в целом
with BFon do begin
Width:=50*9;
Height:=50*3;
Canvas.Font.Name:="Times New Roman";
Canvas.Font.Size:=25;
for C:=0 to 8 do
for R:=0 to 2 do begin
//Если истина то рисуем цифирку
if Random(5)<2 then begin
Rc:=Rect(50*C, 50*R, 50+50*C, 50+50*R);
Canvas.Rectangle(Rc);
repeat
N:=1+Random(99);
until not (N in Bt);
Include(Bt, N);
DrawText(Canvas.Handle, PChar(IntToStr(N)), -1, Rc, DT_SINGLELINE or DT_CENTER or DT_VCENTER);
end else Canvas.Draw(50*C, 50*R, BLogo); //иначе лого
end;
end;
Canvas.Draw(10, Button1.Height+10, BFon);
if CheckBox1.Checked then BFon.SaveToFile(ExtractFilePath(Application.ExeName)+"Lotto.bmp");
finally
BFon.Free;
end;
finally
BLogo.Free;
end;
end;
Вообщем думаю разберешься.... Хотя может быть программа уже готова? :)
← →
Den (2007-11-14 21:39) [16]
> homm © (14.11.07 20:08) [14]
> tbitmap.canvas.textout
спасибо за подсказку.
> {RASkov} (14.11.07 20:18) [15]
Вот от нечего делать "слепил"
> для тебя "примерчик"...
большое спасибо за пример.
> Вообщем думаю разберешься.... Хотя может быть программа
> уже готова? :)
почти, только сделал цифры картинками.:)
← →
имя (2007-12-13 18:16) [17]Удалено модератором
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2009.09.27;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.004 c