Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.08.10;
Скачать: [xml.tar.bz2];

Вниз

Нормальный Transparent в Image???   Найти похожие ветки 

 
Fresh ©   (2008-07-08 21:41) [0]

У меня проблема такая: загружаю картинку .BMP у нее есть белый фон с краев, потом идет рисунок какой-то формы. мне нужно чтоб было видно только ту форму, без белого фона. ставлю свойство Transparent := True - белого не видно. Но один большой нюанс. Чтоб белого не было видно нужно чтоб картинка была огромных размеров, например 400х400 точек а у меня в проге размер картинки 100х100. Если загрузить картинку 400х400 делфи её сжимает до маленьких размеров и белого не стает видно, но таких картинок много, все разные, формат bmp так увеличивает прогу, что невыносимо!!! Потом пробую делать картинки 100х100 и уже такими вставляю в делфи, но они очень плохо стают прозрачными, видны белые точки, не все убираются. Можно как это решить??????
Я искал в DelphiWorld так нашел такую статью, чуть не такую но с неё можно что-то взять:

*****************************************************************************

При вставке какой-либо картинки в Image с произвольными очертаниями, можно легко обратиться к самой картинке а не к ненужному "куску" Image.  
Решение:  
Вставляем картинку ,например с белым фоном, transpert:=true и на OnMouseOver, или еще где, пишем:
if image1.picture.bitmep.canvas.pixels[X, Y]<>clwhite then
 image1.cursor:=crHourGlass
else
 image1.cursor:=crDefault
Пояснение: при наведении прога проверяет цвет пиксела под указатем и если оно отличается от белого, т.е. цвета фона, то указатель меняет свой вид!  

*****************************************************************************

Если б попиксельно проверять на белый цвет и делать этот пиксел прозрачным. Если кто-то знает как это сделать, то помогите пожалуйста  А то уже и так с этими картинками намучался  Картинок много, если все картинки размером 400х400 то размер программы при 100х100 отличается в 6 раз!!!


 
Kolan ©   (2008-07-08 23:51) [1]

> Если загрузить картинку 400х400 делфи её сжимает до маленьких
> размеров

Вот где промах. Делфай сам не сжимает. См. Strach и AutoSize у TImage


 
DimaBr ©   (2008-07-09 08:48) [2]

Внимание! Здесь обсуждаются вопросы, связанные с разработкой компонентов, редакторов свойств, редакторов компонентов и экспертов IDE.
Вопросы по поиску и использованию готовых компонентов, редакторов или экспертов являются нарушением тематики и могут быть удалены.


 
Правильный^Вася   (2008-07-09 11:48) [3]


> азмеров и белого не стает видно, но таких картинок много,
>  все разные, формат bmp так увеличивает прогу, что невыносимо!
> !! Потом пробую делать картинки 100х100 и уже такими вставляю
> в делфи

видимо, твоя сжималка картинок либо глючит, либо ты вообще через jpeg прогоняешь, либо те точки "почти" белые



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.08.10;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.006 c
15-1214470576
axis_of_evil
2008-06-26 12:56
2008.08.10
вопрос о самолете .. %>


2-1215156404
laao
2008-07-04 11:26
2008.08.10
объясните поведение Delphi при выполнении следующего кода


9-1172434704
Mr.Vlad
2007-02-25 23:18
2008.08.10
Изображение с прозрачным фоном


11-1192628677
Jon
2007-10-17 17:44
2008.08.10
Problem with LoadLibrary


2-1215502263
Олег4
2008-07-08 11:31
2008.08.10
TPopupMenu





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский