![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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 |