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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.09.2010, 19:27   #1
DeDoK
Форумчанин
 
Аватар для DeDoK
 
Регистрация: 05.11.2007
Сообщений: 392
По умолчанию получение серого изображения из исходного

такой эффект видел в фотошопе. как это реализовать в делфи?
DeDoK вне форума Ответить с цитированием
Старый 07.09.2010, 19:43   #2
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Серый := (Красный + Зеленый + Синий) div 3;
Например, пикселу с цветом RGB(255, 16, 53) эквивалентен серый пиксел RGB(108, 108, 108).
Или вы что-то другое имели в виду.
Sibedir вне форума Ответить с цитированием
Старый 07.09.2010, 20:10   #3
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Если полностью реализацию с исходником: https://sourceforge.net/projects/fvfl/
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 08.09.2010, 18:17   #4
DeDoK
Форумчанин
 
Аватар для DeDoK
 
Регистрация: 05.11.2007
Сообщений: 392
По умолчанию

а где ж исходник? там только dll, прога и фотка...
и можно ли это организовать без длл?
DeDoK вне форума Ответить с цитированием
Старый 08.09.2010, 18:24   #5
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

А в папку Source не смотрели?
https://sourceforge.net/projects/fvfl/files/
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 08.09.2010, 18:28   #6
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Делить на три не совсем точный метод. Есть еще метод с разными коэффициентами для разных каналов (цветовых составляющих). В том же Фотошопе это реализовано, можно настраивать уровни.

Код:
procedure GrayScale(var clip: tbitmap);
var
  p0: pbytearray;
  Gray,x,y: Integer;
begin
  for y:=0 to clip.Height-1 do
  begin
    p0:=clip.scanline[y];
    for x:=0 to clip.Width-1 do
    begin
      Gray:=Round(p0[x*3]*0.3+p0[x*3+1]*0.59+p0[x*3+2]*0.11);
      p0[x*3]:=Gray;
      p0[x*3+1]:=Gray;
      p0[x*3+2]:=Gray;
    end;
  end;
end;
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 09.09.2010, 08:26   #7
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Цитата:
Делить на три не совсем точный метод.
Почему?

Мне кажется, что получение "правильного" серого цвета - это весьма субъективная задача. Величина серого цвена - это интенсивность восприятия цвета глазом или иным оптическим прибором. А это, согласитесь, весьма индивидуальное понятие.
Откуда, кстати, появились приведенные вами коэффициенты: 0.3, 0.59, 0.11. Я имею в виду, они получены имперически или имеют физико-биологическое обоснование?
Sibedir вне форума Ответить с цитированием
Старый 09.09.2010, 10:24   #8
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

По идее, под каждый монитор свои коэффициенты подбирать надо.
Но если монитор профессиональный и калиброванный, то, я так понимаю, нужно на три делить.
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Старый 09.09.2010, 10:36   #9
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Откуда, кстати, появились приведенные вами коэффициенты: 0.3, 0.59, 0.11. Я имею в виду, они получены имперически или имеют физико-биологическое обоснование?
Разная чувствительность человеческого глаза к различным областям спектра (R G B) полученная империческим путем.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 09.09.2010, 14:33   #10
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Цитата:
Разная чувствительность человеческого глаза к различным областям спектра (R G B) полученная империческим путем.
Спасибо. Буду знать. Кстати, весьма логичные значения у коэффициентов. Зеленый цвет для первобытного человека имел первостепенное значение. А это 10-ки тысяч лет эволюции. По сравнению с 2-3 тысячами лет более-менее современной истории это значительно больше. к тому же древним нужно было не только хорошо видеть зеленый, но и различать много его оттенков. Красный тоже нужный цвет. Но его достаточно было увидеть, а подробности оттенка их не интересовали. И с синим тоже все понятно. Кроме неба и моря в жизни древних ничего понастоящему синего и не было.
Sibedir вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
получение изображения невидимого/перекрытого окна Пепел Феникса Win Api 2 23.12.2009 16:06
Возврат исходного изображения Fellot Помощь студентам 3 07.12.2009 22:51
Получение свойств изображения Бутаков_Сергей Мультимедиа в Delphi 2 10.06.2009 18:38
Оттенки серого yulia Мультимедиа в Delphi 4 02.12.2008 15:50
Чтение изображения из базы данных, Вместо изображения - "System.Byte[]" ruelCrow Общие вопросы .NET 3 10.07.2008 23:29