Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прозрачность Bmp 
:(
    Опции темы
mistrmax
Дата 27.12.2011, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 30.5.2010

Репутация: нет
Всего: нет



Здравствуйте.
На форме кнопка BitBtn1, Image1, Image2.
Событие OnClick кнопки:
Код

procedure TForm1.BitBtn1Click(Sender: TObject);
var
dest,source:TRect;
bmp:TBitmap;
begin
  try
  bmp:=TBitmap.Create; //создаём битмап
  //устанавливаем размеры
  bmp.Width:=Image1.Picture.Icon.Width;
  bmp.Height:=Image1.Picture.Icon.Height;
  //рисуем иконку из первого имаджа (ICO->BMP)
  bmp.Canvas.Draw(0,0,Image1.Picture.Icon);
  //увеличиваем картинку из 32х32 в 48x48
  dest:=Bounds(0,0,48,48);
  source:=Bounds(0,0,32,32);
  Image2.Canvas.CopyRect(dest,bmp.Canvas,source);
  Image2.Picture.Bitmap.Transparent:=true;
  finally
  bmp.free;
  end;
end;

Форма выглядит так после нажатия на кнопку:
user posted image
Как убрать возникающий белый фон. Свойство Image2.Transparent:=true;
Заранее огромное спасибо.
PM   Вверх
Alexeis
Дата 27.12.2011, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 34
Всего: 459



  Прозрачность в битмапе не является стандартом, тогда как  иконка должна иметь маску прозрачности, поэтому иконка будет рисовать прозрачной, а битмап нет. При копировании картинки из иконки в битмап прозрачность теряется. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Dik0n
Дата 27.12.2011, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 11.5.2011

Репутация: нет
Всего: 10



А зачем так извращатся, не проще ли

Код

procedure TForm1.Button1Click(Sender: TObject);
begin
  Image2.Picture.Assign(Image1.Picture);
end;


Или Transparent не у Bitmap ставить а у Image

Код

  Image2.Transparent := True;


Это сообщение отредактировал(а) Dik0n - 27.12.2011, 18:38
--------------------
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ◄◄◄ Сотри монеткой защитный слой
PM MAIL WWW   Вверх
mistrmax
Дата 27.12.2011, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 30.5.2010

Репутация: нет
Всего: нет



Alexeis, вы конечно извините, но я всё это уже знаю, так что ничего нового вы для меня не открыли: спасибо, кэп. Проблема в другом. Вы к примеру возьмите на каком-нибудь одноцветном фоне нарисуйте что-нибудь, загрузите в Image и выставьте transparent:=true - фон исчезнет. Этого я и пытаюсь добиться, только обычный способ здесь не помогает.

Dik0n, дело в том, что я увеличиваю иконку в два раза. Читайте внимательно.

Цитата(Dik0n @  27.12.2011,  18:19 Найти цитируемый пост)
Image2.Transparent := True;

Читайте тему перед ответом внимательно [2]. Ибо:

Цитата(mistrmax @  27.12.2011,  17:54 Найти цитируемый пост)
Свойство Image2.Transparent:=true;


PM   Вверх
mistrmax
Дата 28.12.2011, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 30.5.2010

Репутация: нет
Всего: нет



Возможно я ошибся в названии темы. Мне бы хотябы создать видимость прозрачности. Подошло бы даже иземенение этого белого фона на какой-либо другой.
PM   Вверх
Alexeis
Дата 28.12.2011, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 34
Всего: 459



  Проверьте какой цвет выставлен прозрачным 
Image1.Picture.Bitmap.TransparentColor 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
mistrmax
Дата 28.12.2011, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 30.5.2010

Репутация: нет
Всего: нет



Код

procedure TForm1.BitBtn1Click(Sender: TObject);
var
dest,source:TRect;
bmp:TBitmap;
begin
  try
  bmp:=TBitmap.Create; //создаём битмап
  //устанавливаем размеры
  bmp.Width:=Image1.Picture.Icon.Width;
  bmp.Height:=Image1.Picture.Icon.Height;
  //рисуем иконку из первого имаджа (ICO->BMP)
  bmp.Canvas.Draw(0,0,Image1.Picture.Icon);
  dest:=Bounds(0,0,48,48);
  source:=Bounds(0,0,32,32);
  //увеличиваем картинку из 32х32 в 48x48
  Image2.Canvas.CopyRect(dest,bmp.Canvas,source);
  //прозрачность
  Image2.Picture.Bitmap.TransparentColor:=clWhite;
  Image2.Picture.Bitmap.TransparentMode:=tmFixed;
  Image2.Picture.Bitmap.Transparent:=true;
  finally
  bmp.free;
  end;
end;

Тоже самое
PM   Вверх
Чучмек
Дата 28.12.2011, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 7
Всего: 41



У меня все прекрасно работает.
Цитата(mistrmax @  27.12.2011,  17:54 Найти цитируемый пост)
Image2.Picture.Bitmap.Transparent:=true;

Это лишнее.
Достаточно Image2.Transparent:=true;
Дай исходную иконку.




--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
mistrmax
Дата 28.12.2011, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 30.5.2010

Репутация: нет
Всего: нет



Чучмек, вот http://rghost.ru/35646295 . Выберите любую, ни одна не работает.
Кстати можете дать скрин пожалуйста посмотреть на сие чудо.
PM   Вверх
Чучмек
Дата 28.12.2011, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 7
Всего: 41



Цитата(mistrmax @  28.12.2011,  17:46 Найти цитируемый пост)
Кстати можете дать скрин пожалуйста посмотреть на сие чудо

user posted image


Это сообщение отредактировал(а) Чучмек - 28.12.2011, 17:54


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
mistrmax
Дата 28.12.2011, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 30.5.2010

Репутация: нет
Всего: нет



Чучмек, красота. То что нужно. Если не затруднит киньте код и иконку которую вы использовали. И как у вас с теми что дал я?
PM   Вверх
Чучмек
Дата 28.12.2011, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 7
Всего: 41



Цитата(mistrmax @  28.12.2011,  17:59 Найти цитируемый пост)
 киньте код и иконку которую вы использовали. И как у вас с теми что дал я? 

Да код тот же самый.
С твоими иконками тоже получается.
Моя иконка вот:
 


Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  Icon1.zip 0,40 Kb


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
mistrmax
Дата 28.12.2011, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 30.5.2010

Репутация: нет
Всего: нет



Чучмек, с твоей иконкой получилось. Даже не знаю чё и делать.
PM   Вверх
Чучмек
Дата 28.12.2011, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 7
Всего: 41



mistrmax, проверь вот это


Это сообщение отредактировал(а) Чучмек - 28.12.2011, 23:49

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  Project2.zip 195,41 Kb


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
mistrmax
Дата 29.12.2011, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 30.5.2010

Репутация: нет
Всего: нет



Чучмек, работает так как надо. Бред какой-то получается, если ты говоришь что исходники одинаковые. Кинь исходник, если не трудно.
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0628 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.