Форум сайта python.su
У меня возник вопрос. Как сделать прозрачный фон у объекта Canvas (в том числе у вставленной картинки). Ведь все виджеты, по сути, вставляются в прямоугольник, имеющий фоновый цвет. В итоге если я перемещаю объект по экрану и задеваю другой объект с отличным от фона прямоугольника цветом, то проявляется фон, а хотелось бы, чтобы его не было видно. Как это сделать?
Офлайн
alpha=
(Windows, Mac) Controls window transparency. 0.0 means fully transparent, 1.0 means fully opaque. This isn’t supported on all systems; where not supported, Tkinter always uses 1.0. Note that in this release, this attribute must be given as “-alpha”.
Документация
Отредактировано 4kpt_V (Июнь 20, 2020 13:54:42)
Офлайн
С данным материалом я знаком, но указанный параметр делает прозрачным окно и все, что в нем находится, а мне нужно сделать прозрачным фон для объекта, чтобы вне зависимости от того, с каким объектом он пересекается, или какого цвета холст, фон не был виден.
Офлайн
Честно. Я не пойму о чем вы.
Офлайн
Скажу по-другому, есть, к примеру, картинка, на которой изображен человечек, изображен он на каком-то фоне. Я вставляю картинку в Canvas tkinter (или в pygame), и если фон картинки не совпадает по цвету с холстом, то мы видим не только человечка, но и фон. Такая же ситуация с пересечением другого объекта: фон, даже если по цвету совпадает с холстом, пересекаясь с другим объектом, становится видимым (накладывается на объект). Мне нужно чтобы было видно только человечка при любых его перемещениях по холсту. Возможно, я много хочу, и это звучит нереально, но ведь как-то это делают, правда, возможно, что в Canvas это невозможно реализовать.
Офлайн
Konstantin1984+Вообщето есть такое понятие как альфа-канал, вот его и используют для задания прозрачности.
Я вставляю картинку в Canvas tkinter (или в pygame), и если фон картинки не совпадает по цвету с холстом, то мы видим не только человечка, но и фон
from tkinter import Tk, Canvas from PIL import Image, ImageTk root = Tk() image = Image.open('jerry.png') tkimg = ImageTk.PhotoImage(image) canvas = Canvas(root, height=600, width=600) canvas.grid() def stamp(event): canvas.create_image(event.x, event.y, image=tkimg) canvas.bind('<ButtonPress-1>', stamp) root.mainloop()
[code python][/code]
Отредактировано PEHDOM (Июнь 21, 2020 13:55:52)
Прикреплённый файлы:
jerry.png (20,5 KБ)
Офлайн
Здорово! Уважаемый PEHDOM, если бы Вы мне объяснили еще, как такой фон делать (простой вариант), было бы совсем замечательно.
Отредактировано Konstantin1984+ (Июнь 21, 2020 17:33:52)
Офлайн
Нашел, все очень просто, судя по всему, в любом графическом редакторе можно фон сделать прозрачным.
Офлайн
Konstantin1984+Капец. Я вообще бы об этом никогда не подумал. Photoshop курс таки надо пройти. Про много чего интересного узнаете. От лямбд регулировок до тоновых кривых
Нашел, все очень просто, судя по всему, в любом графическом редакторе можно фон сделать прозрачным.
Офлайн