|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
убрать фон загруженной картинки в TcxImage
Есть 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
|
||||
|
||||
Тяжеловато что либо проверить с таким исходным кодом, а точнее невозможно.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#12
|
|||
|
|||
После конвертации в bmp проблема не решилась.
После Image.Picture.Bitmap.TransparentColor:= Bitmap.Canvas.Pixels[1,1]; http://www.fayloobmennik.net/981712(белый фон остался) |
#14
|
|||
|
|||
А решение "Pyro" очень помогло(правда границы рисунка получились обгрызанными). Спасиба!
|
#15
|
||||
|
||||
Это так называемое решение через з...цу, да не убьёт меня, надеюсь Admin.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |