Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.01.2010, 13:37   #11
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
Bit:=TBitMap.Create
Код:
var Mbm:TBitmap;
begin
Mbm.Create;
Mbm.Assign(Pimg1.Picture.Bitmap);
Pimg1.Canvas.Draw(0,0,Mbm);
Mbm.Free;
end;
Сами найдете или показать ошибку?
И кто такой Pimg1? Он создан?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 05.01.2010, 13:49   #12
Herly
Форумчанин
 
Регистрация: 07.11.2009
Сообщений: 118
По умолчанию

Да, это моя невнимательность(. Исправил и всё получилось.
А можете теперь про работу со scanline написать. Например вчера целый день бился, пытался записать линии в переменную L:PByteArray.
Записывал вот так
Цитата:
for q:=0 to Mbm.Height do
Begin
L:=Mbm.scanline[q];
end;
Этот пример я вытащил из книги Флёнова, но из проги для размытия изображения. Вот здесь я уже не очень понимаю что такое PByteArray. Как изменять линию L и как вернуть изменённую линию в Bitmap. В книге по поводу этого кода написано что читатель сам во всём спокойно разберётся, но про тип L ни слова(. Или например можно как-то напрямую работать с пикселями и их цветом в ScanLine?
Помогите разобраться пожалуйста.
Если всё откладывать на потом, то потом будет всё.
Herly вне форума Ответить с цитированием
Старый 05.01.2010, 13:54   #13
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

А чья теперь невнимательность:? http://www.programmersforum.ru/showp...96&postcount=4

Там все построено на ScanLine. И что-бы узнать тип - загляните в Var.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 05.01.2010, 14:06   #14
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Прекрасный модуль. Спасибо Любопытная Вредина
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 05.01.2010, 14:21   #15
Herly
Форумчанин
 
Регистрация: 07.11.2009
Сообщений: 118
По умолчанию

Цитата:
Сообщение от DeKot Посмотреть сообщение
Прекрасный модуль. Спасибо Любопытная Вредина
Вот только ниодной строчки ScanLine я там не увидел. А мне хотелось бы научиться работать с пикселями, т.к в дальнейшем хочу сравнивать картинку попиксельно. А в целом модуль интересный.
Если всё откладывать на потом, то потом будет всё.
Herly вне форума Ответить с цитированием
Старый 05.01.2010, 14:29   #16
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

плохо искали
Код:
RowOut:= _B_out.ScanLine[y+_y];
     RowIn:= _B_in.ScanLine[y];
строки 66-67 и далее 110,130 и тд (24 раза)
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 05.01.2010, 14:33   #17
Herly
Форумчанин
 
Регистрация: 07.11.2009
Сообщений: 118
По умолчанию

Вот что у меня написано в коде программы
Цитата:
procedure Tmainform.Button1Click(Sender: TObject);
begin
CopyTransparentBrush( Image1.Picture.Bitmap,Image2.Pictur e.Bitmap,10,20,clblack );
Image2.Repaint;
end;

procedure Tmainform.Timer1Timer(Sender: TObject);
begin
image3.Picture.Bitmap.Canvas.CopyRe ct(rect(0,0,image3.Width,image3.Hei ght),Image2.Picture.Bitmap.Canvas,r ect(0,0,image3.Width,image3.Height) );

if CheckBox3.Checked then
PrepareBitmapBW(image3.Picture.Bitm ap);

if CheckBox1.Checked then
PreparePalitBitmap2colors(image3.Pi cture.Bitmap,cllime,clblack);

if CheckBox8.Checked then
PrepareBitmapBluuum(image3.Picture. Bitmap,1);

if CheckBox2.Checked then
PreparePalitBitmapInvert(image3.Pic ture.Bitmap);

if CheckBox7.Checked then
PrepareBitmapChanal(Image3.Picture. Bitmap,TrackBar3.Position-100,TrackBar4.Position-100,TrackBar5.Position-100);

if CheckBox5.Checked then
PrepareBitmapBright(image3.Picture. Bitmap,TrackBar1.Position-100);

if CheckBox4.Checked then
PrepareBitmapTVmask(image3.Picture. Bitmap,1,100);

if CheckBox6.Checked then
DrawTransparentText(Image3.Picture. Bitmap,10,50,label1.Font,TrackBar2. Position,Edit1.Text);

if CheckBox9.Checked then
PrepareBitmapBWPersent(Image3.Pictu re.Bitmap,TrackBar6.Position);

if CheckBox10.Checked then
PrepareBitmapSerpia(Image3.Picture. Bitmap);

image3.Repaint;
end;

procedure Tmainform.ColorBox1Change(Sender: TObject);
begin
label1.Font.Color:=ColorBox1.Select ed;
Timer1Timer(nil);
end;

procedure Tmainform.ComboBox1Change(Sender: TObject);
begin
label1.Font.Size:=ComboBox1.ItemInd ex*2+6;
Timer1Timer(nil);
end;

procedure Tmainform.Button2Click(Sender: TObject);
begin
CopyTransparentMask( Image1.Picture.Bitmap,Image2.Pictur e.Bitmap,Image4.Picture.Bitmap,128, 20,clblack);
Image2.Repaint;
end;

procedure Tmainform.Button3Click(Sender: TObject);
begin
Draw_Gradient(Image3.Picture.Bitmap .Canvas,Image2.Picture.Bitmap.Canva s.ClipRect,clgreen,clblack,false);
end;

procedure Tmainform.TrackBar1Change(Sender: TObject);
begin
Timer1Timer(nil);
end;

procedure Tmainform.FormCreate(Sender: TObject);
begin
image3.Picture.Bitmap.Width:=image2 .Width;
image3.Picture.Bitmap.Height:=image 2.Height;
image3.Picture.Bitmap.Canvas.CopyRe ct(rect(0,0,image3.Width,image3.Hei ght),Image2.Picture.Bitmap.Canvas,r ect(0,0,image3.Width,image3.Height) );
end;

procedure Tmainform.TrackBar2Change(Sender: TObject);
begin
Timer1Timer(nil);
end;

procedure Tmainform.Edit1Change(Sender: TObject);
begin
Timer1Timer(nil);
end;

procedure Tmainform.CheckBox4Click(Sender: TObject);
begin
Timer1Timer(nil);
end;

procedure Tmainform.CheckBox3Click(Sender: TObject);
begin
Timer1Timer(nil);
end;

procedure Tmainform.CheckBox2Click(Sender: TObject);
begin
Timer1Timer(nil);
end;

procedure Tmainform.CheckBox1Click(Sender: TObject);
begin
Timer1Timer(nil);
end;

procedure Tmainform.CheckBox5Click(Sender: TObject);
begin
Timer1Timer(nil);
end;

procedure Tmainform.CheckBox6Click(Sender: TObject);
begin
Timer1Timer(nil);
end;

procedure Tmainform.Button7Click(Sender: TObject);
begin
DrawTransparentTextRotate(Image2.Pi cture.Bitmap,50,50,label1.Font,100, 'Test',pi/8);
Image2.Repaint;
end;

end.
Если всё откладывать на потом, то потом будет всё.
Herly вне форума Ответить с цитированием
Старый 05.01.2010, 14:45   #18
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

А зачем вы в тело проги то лезли - вам в Scanline.pas нужен
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 05.01.2010, 15:35   #19
Herly
Форумчанин
 
Регистрация: 07.11.2009
Сообщений: 118
По умолчанию

Решил начать разбор алгоритмов с процедуры PrepareBitmapBw
и возник вопрос как определить формат картинки?
В процедуре задаётся вот такой формат, объясните что даёт такой формат.
Цитата:
_B_out.PixelFormat:=pf24bit;
Если всё откладывать на потом, то потом будет всё.
Herly вне форума Ответить с цитированием
Старый 05.01.2010, 15:42   #20
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

pf24bit- это изображение использует 3 байта на пиксель подробнее
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с TBitmap QunneD Общие вопросы Delphi 2 21.11.2009 18:32
ImageList + TBitMap = ... Alex Cones Мультимедиа в Delphi 4 08.07.2009 14:00
TBitmap и указатели Levsha100 Общие вопросы C/C++ 3 17.05.2009 22:36
движение TBitMap Juffin Мультимедиа в Delphi 1 14.04.2009 21:34
TBitmap odi_noki Мультимедиа в Delphi 17 25.10.2008 09:53