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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2011, 18:11   #1
Anton911
Форумчанин
 
Аватар для Anton911
 
Регистрация: 23.08.2011
Сообщений: 171
Восклицание Удаление ненужной части в картинке

Решил я сделать игру 2D, есть различные объекты которые рисуется на Image с помощью Canvas. У каждого объекта своя картинка. Так вот собственно проблема:
Нарисовал я в Фотошопе, пеинте (не важно) объект, как убрать ненужную часть? Я имею ввиду, что когда нарисуешь вокруг объекта остается ненужная чатсть, белая. Понимаю... Объяснил не понятно, чтобы было понятней взгляните на два скрина. На них видно что вокруг объектов совсем не нужная белая часть, вот мне ее нужно както убрать. Как это лучше сделать? Можетбыть Delphi понимает какойнибудь особый цвет, который он считает прозрачным? Или как? Буду очень благодарен помощи!
Изображения
Тип файла: jpg скрин1.JPG (21.6 Кб, 92 просмотров)
Тип файла: jpg скрин2.JPG (22.4 Кб, 96 просмотров)
Каждый день узнаю новое...
Anton911 вне форума Ответить с цитированием
Старый 30.09.2011, 19:35   #2
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

1. если у вас в игре фон не меняется в настройках, то свои картинки -бегающие смайлики тоже сделайте с зелёным цветом и не будет видно эту белую область.
2. или пишите функцию прорисовки своих смайликов при помощи геометрических фигур (линий, кругов, квадратов, точек...)
3. я иногда использую иконки с прозрачной заливкой - но у них нельзя менять размер и растягивать, иначе прозрачность исчезает и получается чернота вокруг рисунка - это лучший вариант
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 30.09.2011, 20:32   #3
Asinkrit
Пользователь
 
Аватар для Asinkrit
 
Регистрация: 02.04.2011
Сообщений: 48
По умолчанию

Код:
  BMP.LoadFromFile('...');
  BMP.TransparentColor:=clWhite;
  BMP.Transparent:=true;
  Canvas.Draw(20,20,BMP);
BMP (TBitMap) - это ваша картинка, которую рисуете, transparentColor - соответственно цвет, который надо сделать прозрачным.
Asinkrit вне форума Ответить с цитированием
Старый 01.10.2011, 06:47   #4
Anton911
Форумчанин
 
Аватар для Anton911
 
Регистрация: 23.08.2011
Сообщений: 171
По умолчанию

Цитата:
Сообщение от NetSpace Посмотреть сообщение
1. если у вас в игре фон не меняется в настройках, то свои картинки -бегающие смайлики тоже сделайте с зелёным цветом и не будет видно эту белую область.
2. или пишите функцию прорисовки своих смайликов при помощи геометрических фигур (линий, кругов, квадратов, точек...)
3. я иногда использую иконки с прозрачной заливкой - но у них нельзя менять размер и растягивать, иначе прозрачность исчезает и получается чернота вокруг рисунка - это лучший вариант
1.Картинка будет меняться, а точнее не картинка а Текстура (будет).
2.Это сейчас смайлики для теста, потом чтонибудь нарисую может быть по красивше
3.Иконки тоже не получится, т.к будут и большие объекты, босс какойнибудь

Цитата:
Сообщение от Asinkrit Посмотреть сообщение
Код:
  BMP.LoadFromFile('...');
  BMP.TransparentColor:=clWhite;
  BMP.Transparent:=true;
  Canvas.Draw(20,20,BMP);
BMP (TBitMap) - это ваша картинка, которую рисуете, transparentColor - соответственно цвет, который надо сделать прозрачным.
Спасибо, это работает, но только почему-то всеравно вокруг картинки остается небольшой толщины белый цвет, и получается не очень красиво Можно ли это как-нибудь исправить?
Каждый день узнаю новое...

Последний раз редактировалось Anton911; 01.10.2011 в 06:50.
Anton911 вне форума Ответить с цитированием
Старый 01.10.2011, 09:49   #5
Anton911
Форумчанин
 
Аватар для Anton911
 
Регистрация: 23.08.2011
Сообщений: 171
По умолчанию

Все разобрался всем спасибо Все дело было в том что визуально был белый цвет но на самом деле не 255 255 255 а 255 255 250, и делфи не считал это за белый цвет, С помощью фотошопа пришлось пиксели перекрашивать, теперь нормально.
Каждый день узнаю новое...
Anton911 вне форума Ответить с цитированием
Старый 01.10.2011, 13:37   #6
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

Ну, я использую программу AWIcons Pro, так там можно создавать иконки произвольного размера, а не только квадратные, типа 32х32 или 128х128. Ну, а если уже не надо, то хорошо, что разобрались
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление части данных из ячейки John34 Microsoft Office Excel 7 17.11.2014 14:34
Удаление части строки после символа leus2009 Microsoft Office Excel 3 11.05.2014 02:02
Удаление части строк в memo igabenu Помощь студентам 3 17.10.2012 17:47
Удаление из ячейки StringGrid части текста SPD Общие вопросы Delphi 3 21.08.2010 12:24
Надпись на картинке Lemo Помощь студентам 4 11.02.2009 20:12