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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2007, 12:52   #1
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию Прозрачность для нескольких цветов в Image

Можно ли в Image сделать невидимыми сразу несколько цветов, а то св-во transparent убирает только один цвет
SERG1980 вне форума Ответить с цитированием
Старый 11.05.2007, 13:59   #2
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

Вообще нельзя, но выход найти можно.
1) Заменить нужные цвета, на один цвет, и уже отбивать по нему.
Alar вне форума Ответить с цитированием
Старый 11.05.2007, 15:20   #3
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

А как это сделать не подскажешь?
SERG1980 вне форума Ответить с цитированием
Старый 11.05.2007, 19:53   #4
Voland
Heavy metal
Пользователь
 
Аватар для Voland
 
Регистрация: 02.04.2007
Сообщений: 42
По умолчанию

Я подскажу. Можно через Canvas.Pixels[] конечно, но вот код, который в разы быстрее:
Код:
procedure TForm1.Button1Click(Sender: TObject);
type
  PCardArray = ^TCardArray;
  TCardArray = array[0..8191] of Cardinal;
var
  x, y: Cardinal;
  line: PCardArray;
begin
  with Image1.Picture.Bitmap do begin
    PixelFormat:=pf32bit;
    for y:=0 to Height - 1 do begin
      line:=ScanLine[y];
      for x:=0 to Width - 1 do
        if line[x] = $FFFFFF then line[x]:=$FF0000;
    end;
  end;
end;
Формат пикселей битмапа меняем для упрощения. Иначе пришлось бы возиться с палитрами, если битмап не полноцветный. И ещё, порядок байт в цвете получается противоположный, то есть $00RRGGBB а не $00BBGGRR, как обычно. То есть, в моём примере белый меняется на красный.
Voland вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
image. печать большого изображения на нескольких листах OLEG'arh Общие вопросы Delphi 1 20.06.2008 13:06
Получение 2х цветов и их сравнение Zeraim Помощь студентам 3 26.04.2008 15:43
Сравнивание цветов Zeraim Общие вопросы Delphi 7 26.04.2008 12:49
Копирование текста ячейки 2 цветов WIC Microsoft Office Excel 3 24.09.2007 13:32
Перевод картинки в двухмерный массив RGB цветов Alar Общие вопросы Delphi 8 09.08.2007 14:24