![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Есть Image.Style.Color:=clGray(серый)
загружаю картинку и получаю в серой клетке картинка на белом фоне Как убрать белый фон? вариант1 Image.Picture.Bitmap.TransparentColour:=clWhite; убирает картинку бесследно(остается серая клеть) вариант2(через з) for k:=1 to Image.Picture.Width do for i:=1 to Image.Picture.height do if Image.Picture.Bitmap.Canvas.Pixels[k,i]=clWindow then Image.Picture.Bitmap.Canvas.Pixels[k,i]:=clGray; дает такой же результат Пожалуйста, подскажие не сложный выход! |
|
#2
|
||||
|
||||
|
А пробовали?
Код:
Properties.GraphicTransparency := gtTransparent |
|
#3
|
|||
|
|||
|
Пробывал. Результат неудовлетворительный(http://www.fayloobmennik.net/981712)
Последний раз редактировалось Lookas007, 17.09.2011 в 12:25. |
|
#4
|
||||
|
||||
|
За цвет назначаемый прозрачным отвечает обычно левый верхний пиксель картинки. Если у вас фон не однотонно белый, или левый верхний пиксель не белый, то и прозрачность автоматом не вычисляется. Загрузите в графический редактор картинку и проверьте одинаковы ли цвета у ключевого пикселя и фона картинки.
|
|
#5
|
|||
|
|||
|
Навел левый верхний угол(несколько пикселей включая самый левый и верхний) белым цветом в пейнте(хотя он и весь фон каринки и так белые)
constructor TPole.Create(k, i, raz:integer;AOwner : TComponent); begin Image:=TcxImage.Create(nil); ....... Image.Style.Color:=clGray; end; procedure TDoska.PosBeg;//расставляем фигурки var k,i:integer; begin Image.Picture.LoadFromFile('Kon.jpg'); with Image.Picture do begin Bitmap.TransparentColor:= Bitmap.Canvas.Pixels[1,1]; end; end; клеть остается пустой. Если //Bitmap.TransparentColor:= Bitmap.Canvas.Pixels[1,1]; вырисовывается в серой клетке картинка фигурки на белом фоне(как в предыдущей ссылке) |
|
#6
|
|||
|
|||
|
пирчем если сделать
Image.Properties.GraphicTransparency := gtTransparent; Image.Picture.Bitmap.Transparent:=false; for k:=1 to Image.Picture.Width do for i:=1 to Image.Picture.height do Image.Picture.Bitmap.Canvas.Pixels[k,i]:=clWhite; то клеть остается цвета clGray |
|
#7
|
||||
|
||||
|
Ладно, прикрепите сюда одну картинку. Попробую добится нужного вам эффекта
|
|
#8
|
|||
|
|||
|
http://www.fayloobmennik.net/981928 картинка
http://www.fayloobmennik.net/981930 исходник(если понадобится) в нем динамически создаются поля в которые потом загружается картинки |
|
#9
|
||||
|
||||
|
Не удалось мне тоже сделать ничего с исходной вашей картинкой. Не хочет он ни Jpeg ни Png выводить с прозрачным фоном, но если идти по классической схеме, то все нормально. Итак вот что нужно сделать:
Открыть картинку, заменить белый цвет фона на малиновый это в RGB будет 255,0,255. Затем сохранить в формате Bmp. Вот в таком варианте будет вам прозрачность. |
|
#10
|
|||
|
|||
|
можно попробовать так
PHP код:
(пересохранить в bmp естественно) |
|
#11
|
||||
|
||||
|
Тяжеловато что либо проверить с таким исходным кодом, а точнее невозможно.
|
|
#12
|
|||
|
|||
|
После конвертации в bmp проблема не решилась.
После Image.Picture.Bitmap.TransparentColor:= Bitmap.Canvas.Pixels[1,1]; http://www.fayloobmennik.net/981712(белый фон остался) |
|
#14
|
|||
|
|||
|
А решение "Pyro" очень помогло(правда границы рисунка получились обгрызанными). Спасиба!
|
|
#15
|
||||
|
||||
|
Это так называемое решение через з...цу, да не убьёт меня, надеюсь Admin.
|