Не совсем уверен. Как мне кажется TColor хранит в формате RGB, а чтобы понять какой светлее - надо перевести RGB в YUV (http://ru.wikipedia.org/wiki/YUV) и потом сравнить яркость Y.
[Ответ]
Andrei_ra 11:34 22.09.2009
лично сталкивался с проблемой Pixels, два абсолютно одинаковых изображения в bmp размером к примеру 16*16 пикселей по центру квадрат снова к примеру 8*8 пикселей отличного от фона цвета, сравниваю изображения ни идет и все тут, вывожу в memo список значений с обоих bitmap и цифры немного но разные, при этом ни какой зависимости не нахожу. С ScanLine все было удачно.
[Ответ]
DWanek 12:05 22.09.2009
Сообщение от Yandex:
надо перевести RGB в YUV и сравнить Y
Отличный вариант. Но тут в любом случае автору решать. Смотря что ему нужно. Может он хочет компоненты цветов отдельно сравнивать. Есть несколько значений, а там уж что нужно, то и делай.
Andrei_ra, Может проблема в палитре была. Я, честно сказать, про сканлайны не очень много знаю. Просто вопрос то был именно про цвет i-того и j-того пикселя.
[Ответ]
Yandex 12:28 22.09.2009
Andrei_ra, надо было debug-нуть и посмотреть что там в сырцах творят. Скорее всего баг есть в них.
[Ответ]
Boing747 16:54 06.10.2009
всем спасибо, очень помогли... теперь вторая загвоздка: как из картинки скопировать в другую переменную прямоугольный кусок с координатами (х,у,х1,у1)?
[Ответ]
shader 14:16 07.10.2009
Boing747 Graphics.TCanvas.CopyRect
В хелпе подробно прочитаешь параметры, которые туда нужно передать. Вызывать, cоответственно, <твой битмап>.Canvas.CopyRect()
[Ответ]
Уважаемые!!!
Подскажите пожалуйста, как из загруженного в Image рисунка выбрать все цвета?
Допустим, чтобы все цвета данного рисунка отобразились либо в DrawGrid либо где предложите.
Помогите пожалуйста!!)))
[Ответ]
Yandex 01:48 06.12.2009
Nagwal, интересные вопросы мучают полтретьего ночи [Ответ]
Nagwal 01:55 06.12.2009
Я в германии, у меня только час, долблюсь над прогой, помогите
[Ответ]
Yandex 02:03 06.12.2009
Nagwal, еще не вечер. Час это очень мало.
P.S. Выше я приводил ссылку что стоит читать, но видимо чукча писатель...
[Ответ]
Nagwal 21:55 08.12.2009
Ничего я там не нашёл. Ну что, трудно подсказать?
[Ответ]
Yandex 22:36 08.12.2009
Nagwal, тяжелый случай. Слишком сложную ты себе задачу поставил.
Рассказываю что делать:
1. Грузишь картинку в TImage
2. Используя scanline или Pixel[i, j] читаешь данные картинки, попутно сладируя прочитанные цвета в массив TColor. Прежде чем добавить цвет, пробегаешь по массиву, и смотришь, что его нет.
3. После того, как картинку всю обошел, выводишь данные в TGrid.
И в чем проблема то?
Код писать не буду, и другим не советую.
[Ответ]
Nagwal 00:27 09.12.2009
вот раньше бы так. огромное спасибо. помогло)))
[Ответ]
Boing747 20:36 01.03.2010
Проблема с копированием так и не решена(((
bm1.Canvas.CopyRect(Rect1,bm2,rect2);
rect1,rect2: TRect;
bm2- источник откуда копируется
bm1-конечный рисунок
rect2- координаты копируемого прямоугольника на источнике
rect1- координаты по которым надо вставить прямоугольник в bm1
В теории все понятно и просто, на практике bm1 получается пустой. ЧТО НЕ ТАК? ОЧЕНЬ НАДО!!!
[Ответ]
панкснотдед 09:40 05.05.2010
Boing747, товарисч, из вашего примера ничего не понятно. На какой строчке вылетает ошибка? Можно полный код процедуры? А то гадать по трём строчкам...
[Ответ]