Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

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

           Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
           И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - https://clck.ru/fCqwP

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2010, 00:12   #1
Iamloli
Пользователь
 
Аватар для Iamloli
 
Регистрация: 22.12.2009
Сообщений: 15
По умолчанию Изменить фон, не закрасив картинку.

Наверняка мой вопрос банален, но что поделать. У меня есть картинка (ну скажем деревцо с веточками во все стороны), и все это на голубом фоне. Я хочу сделать так, что б когда солнце с неба ушло, фон менялся на темно-синий.. но при этом, у меня закрашивает весь рисунок, если б это был просто треугольник, я б его нарисовал заново, и не парился, а тут так не получиться. Подскажите как такое сотворить? Пробовал floodfill, но чего-то не чего не меняется.
Iamloli вне форума Ответить с цитированием
Старый 20.01.2010, 00:16   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Ну возьмите и замените каждый голубой пиксель на синий...
mihali4 вне форума Ответить с цитированием
Старый 20.01.2010, 00:28   #3
Iamloli
Пользователь
 
Аватар для Iamloli
 
Регистрация: 22.12.2009
Сообщений: 15
По умолчанию

Хмм.. Вообще, спасибо за идею)) Но, это придется делать через цикл, и наверняка затормозит немного программу.. Конкретных функций для таких действий нету?)
Iamloli вне форума Ответить с цитированием
Старый 20.01.2010, 00:50   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Iamloli Посмотреть сообщение
наверняка затормозит немного программу
Насколько я понял, у вас процесс смены фона происходит не так уж и часто.
По функциям - смотрите хэлп, методы работы с пикселями.

Хотя проще взять "деревце" на прозрачном фоне и положить его поверх прямоугольника с фоном...
mihali4 вне форума Ответить с цитированием
Старый 20.01.2010, 01:15   #5
Iamloli
Пользователь
 
Аватар для Iamloli
 
Регистрация: 22.12.2009
Сообщений: 15
По умолчанию

Спасибо за советы, обязательно поищу функции с пикселями.
Iamloli вне форума Ответить с цитированием
Старый 20.01.2010, 01:24   #6
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
По умолчанию

Если вы имеете в веду что-то похожее на заливку как в фотошопе или пайнте!!! Тогда

Код:
//Тут указываем цвет на который хотим заменить.
Form1.Canvas.Brush.Color:=clRed;

Form1.Canvas.FloodFill(100,100,clWhite,fsSurface);
//Пояснение.
Form1.Canvas.FloodFill( Координата Х, Координата У, Цвет который нужно заменить, fsSurface);
Простите насчет FloodFill. Не дочитал! =(
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности

Последний раз редактировалось SoftKoc; 20.01.2010 в 01:35.
SoftKoc вне форума Ответить с цитированием
Старый 20.01.2010, 01:27   #7
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

На чём это всё делается-то? В TImage.Canvas?
Попробуйте залить нужную область нужным цветом, а уже сверху рисовать дерево через Windows.TransparentBlt()...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 20.01.2010, 01:48   #8
Iamloli
Пользователь
 
Аватар для Iamloli
 
Регистрация: 22.12.2009
Сообщений: 15
По умолчанию

Цитата:
Простите насчет FloodFill. Не дочитал! =(
Та ладно, надо еще раз попробовать)
Хмм.. DomiNick, я такое наверняка пока не смогу делать, еще не шибко разобрался, но все равно спасибо)
И.. я накатал процедуру, но она чего-то не пашет.. и ошибка странная " Text after final 'END.' - ignored by compiler" (курсор высвечивает сразу после then).. Где он нашел конец, мне не известно))
Код:
procedure fon;
var y,x:integer;
begin
        with form1.canvas do
                for y:=1 to Form1.Height do
                        for x:=1 to Form1.Width do
                                if Pixels[x,y]:=Form1.Color then Pixels[x,y]:=clblue;
                                      //  end;
                             //   end;
                        end;
я его потом немного усовершенствую, но пока мне интересно.. что я не так написал))

Последний раз редактировалось mihali4; 20.01.2010 в 02:14.
Iamloli вне форума Ответить с цитированием
Старый 20.01.2010, 01:58   #9
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Цитата:
и ошибка странная " Text after final 'END.' - ignored by compiler"
Много лишних "end;"... Или что-то после закрывающего "end." написано...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 20.01.2010, 02:19   #10
Iamloli
Пользователь
 
Аватар для Iamloli
 
Регистрация: 22.12.2009
Сообщений: 15
По умолчанию

Без тех end, пишет "Declaration expected but end of file found".
Iamloli вне форума Ответить с цитированием
Ответ

           Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
           Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реестр - Необходимо изменить действие по умолчанию для .reg файлов(«Изменить» вместо «Объединить»). ACE Valery Windows 7 30.11.2010 23:33
Фон =Kroshka= Microsoft Office Word 2 23.07.2009 14:39
как изменить фон изображения до общего фона. CaSHA HTML и CSS 5 24.06.2009 11:43
как разместить картинку в фон на сайт? ILLUSION Помощь студентам 8 12.05.2009 22:04
фон beygul Общие вопросы Delphi 5 28.09.2008 11:28