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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2011, 17:09   #1
LilliPut
 
Регистрация: 10.05.2011
Сообщений: 6
По умолчанию Обработка Image в Delphi

На форме Image1 и Image2. В Edit вводим значение и Image1 меняет яркость. Проблема: меняя яркость Image1, и введя новые значения, Image1 меняется не с исходными данными, а с тем, что было. Нужно прост изменять Image1 и присваивать значения в Image2, затем, при введении нового значения в Edit, снова меняем Image1 и присваиваем в Image2. Вот как это реализовать? Не могу придумать


Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute = false then exit;
  Bmp := TBitmap.Create;
  Bmp.LoadFromFile(OpenDialog1.FileName);
  Image1.Picture.Bitmap := Bmp;
  Image2.Picture.Bitmap := Bmp;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   d:=StrToInt(Edit1.Text);
  if d <= 0 then
    Exit;
  if d > 100 then
    d := 100;
  begin
  for i := 0 to Bmp.Width - 1 do
    for j := 0 to Bmp.Height - 1 do
    BEGIN
     R := GetRValue(Bmp.Canvas.Pixels[i,j]);
     G := GetGValue(Bmp.Canvas.Pixels[i,j]);
     B := GetBValue(Bmp.Canvas.Pixels[i,j]);
     R := R + (255 - R) * d div 100;
     G := G + (255 - G) * d div 100;
     B := B + (255 - B) * d div 100;
     Bmp.Canvas.Pixels[i,j] := RGB(R, G, B);
    END;
   Image1.Picture.Bitmap := Bmp;
  end;
end;


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 10.05.2011 в 20:23.
LilliPut вне форума Ответить с цитированием
Старый 10.05.2011, 17:20   #2
Swarog
Форумчанин
 
Аватар для Swarog
 
Регистрация: 26.01.2010
Сообщений: 215
По умолчанию

Цитата:
Проблема: меняя яркость Image1, и введя новые значения, Image1 меняется не с исходными данными, а с тем, что было.
Выход: Каждый раз загружать исходное изображение, перед изменением яркости допустим так...
Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
iBmp.LoadFromFile(OpenDialog1.FileName);;//opendialog1 не должен изменяться
d:=StrToInt(Edit1.Text);
Могу лишь пнуть в нужном направлении (ну или как получится)

Последний раз редактировалось Swarog; 10.05.2011 в 17:25. Причина: Упс, не так
Swarog вне форума Ответить с цитированием
Старый 10.05.2011, 17:29   #3
LilliPut
 
Регистрация: 10.05.2011
Сообщений: 6
По умолчанию

Не работает( Меняю яркость на 45, потом меняю на 15. В итоге меняется яркость на 60. То есть то же самое. Меняется только Image1.
LilliPut вне форума Ответить с цитированием
Старый 10.05.2011, 17:35   #4
LilliPut
 
Регистрация: 10.05.2011
Сообщений: 6
По умолчанию

Спасибо, что отредактировали))) Получилось) еху)
LilliPut вне форума Ответить с цитированием
Старый 10.05.2011, 17:36   #5
Swarog
Форумчанин
 
Аватар для Swarog
 
Регистрация: 26.01.2010
Сообщений: 215
По умолчанию

а вот так

Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
d:=StrToInt(Edit1.Text);
if d <= 0 then
Exit;
if d > 100 then
d := 100;
begin
for i := 0 to Bmp.Width - 1 do
for j := 0 to Bmp.Height - 1 do
BEGIN
R := GetRValue(Bmp.Canvas.Pixels[i,j]);
G := GetGValue(Bmp.Canvas.Pixels[i,j]);
B := GetBValue(Bmp.Canvas.Pixels[i,j]);
R := R + (255 - R) * d div 100;
G := G + (255 - G) * d div 100;
B := B + (255 - B) * d div 100;
Image1.Canvas.Pixels[i,j] := RGB(R, G, B); // правда будет моргать, зато работает :)
END;
//Image1.Picture.Bitmap := Bmp;
end;
end;
Могу лишь пнуть в нужном направлении (ну или как получится)
Swarog вне форума Ответить с цитированием
Старый 10.05.2011, 17:37   #6
LilliPut
 
Регистрация: 10.05.2011
Сообщений: 6
По умолчанию

Случайно не знаете формулу изменения контраста? =D
LilliPut вне форума Ответить с цитированием
Старый 10.05.2011, 17:44   #7
Swarog
Форумчанин
 
Аватар для Swarog
 
Регистрация: 26.01.2010
Сообщений: 215
По умолчанию

googl в помошь

вот вторая найденная страница...

bmp_contrast.html
Могу лишь пнуть в нужном направлении (ну или как получится)
Swarog вне форума Ответить с цитированием
Старый 10.05.2011, 18:06   #8
LilliPut
 
Регистрация: 10.05.2011
Сообщений: 6
По умолчанию

Это на каждом сайте есть) Лан, будем разбираться..
LilliPut вне форума Ответить с цитированием
Старый 11.05.2011, 15:00   #9
famaZzz
 
Регистрация: 11.05.2011
Сообщений: 3
По умолчанию

Liliput ну что у тебя получилась прога??

Тебе надо было изменять контраст и яркость Image ??
famaZzz вне форума Ответить с цитированием
Старый 12.05.2011, 20:38   #10
famaZzz
 
Регистрация: 11.05.2011
Сообщений: 3
По умолчанию

Ребята помогите кто-то с такой прогой...

Нужна точно такая же для изменения Яркости и контраста изображения ...
famaZzz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi 7 Image Itachi Помощь студентам 6 16.04.2011 18:14
имя Image в delphi TaYgA Помощь студентам 6 25.09.2010 18:37
Вопрос по Image (скачанная картинка не хочет выводиться в Image) Radnor Мультимедиа в Delphi 2 06.07.2009 02:20
PageControl+Image (Delphi) VadEr Помощь студентам 2 05.06.2009 21:04
Image B Delphi Gromsky Помощь студентам 1 29.02.2008 15:40