mam kwadratową logo i muszę go round_corner, poszukiwanej przez jakiś czas i dostałem kod po „pracy”:jak zaokrąglić_okrąstwo logo bez białego tła (przezroczyste?) Na nim za pomocą pil?
def round_corner_jpg(image, radius):
"""generate round corner for image"""
mask = Image.new('RGB', image.size)
#mask = Image.new('RGB', (image.size[0] - radius, image.size[1] - radius))
#mask = Image.new('L', image.size, 255)
draw = aggdraw.Draw(mask)
brush = aggdraw.Brush('black')
width, height = mask.size
draw.rectangle((0,0,width,height), aggdraw.Brush('white'))
#upper-left corner
draw.pieslice((0,0,radius*2, radius*2), 90, 180, None, brush)
#upper-right corner
draw.pieslice((width - radius*2, 0, width, radius*2), 0, 90, None, brush)
#bottom-left corner
draw.pieslice((0, height - radius * 2, radius*2, height),180, 270, None, brush)
#bottom-right corner
draw.pieslice((width - radius * 2, height - radius * 2, width, height), 270, 360, None, brush)
#center rectangle
draw.rectangle((radius, radius, width - radius, height - radius), brush)
#four edge rectangle
draw.rectangle((radius, 0, width - radius, radius), brush)
draw.rectangle((0, radius, radius, height-radius), brush)
draw.rectangle((radius, height-radius, width-radius, height), brush)
draw.rectangle((width-radius, radius, width, height-radius), brush)
draw.flush()
del draw
return ImageChops.add(mask, image)
potem zapisany zwrócony obiekt obrazu, jednak ma białym tle w rogu like this Jak mogę pozbyć się białego tła lub uczynić je niewidocznym? góry dzięki ~
EDIT: oto kod przez Fraxel, dzięki ~
def add_corners(im, rad):
circle = Image.new('L', (rad * 2, rad * 2), 0)
draw = ImageDraw.Draw(circle)
draw.ellipse((0, 0, rad * 2, rad * 2), fill=255)
alpha = Image.new('L', im.size, "white")
w, h = im.size
alpha.paste(circle.crop((0, 0, rad, rad)), (0, 0))
alpha.paste(circle.crop((0, rad, rad, rad * 2)), (0, h - rad))
alpha.paste(circle.crop((rad, 0, rad * 2, rad)), (w - rad, 0))
alpha.paste(circle.crop((rad, rad, rad * 2, rad * 2)), (w - rad, h - rad))
im.putalpha(alpha)
return im
if __name__ == '__main__':
im = Image.open('1.jpg')
im = add_corners(im, 100)
im.save('out.png')`
Jestem tak sorry..I trzeba kształtu obrazu będzie elipsa nie prostokąt, tj. piszę rzeczy z obrazka i @fraxel, wciąż widzę biały narożnik na obrazku, który dla mnie przetworzyłeś
dzięki, ale wciąż ma biały kąt w tle. Sprawdź to [link] (http://www.flickr.com/photos/[email protected]@ N03/7485468218/in/photostream), aby zobaczyć problem, i potrzebuję niewidoczny różowy narożnik, w twoim przypadku biały narożnik (U nie widzę go tutaj, ponieważ jest biały, ten sam kolor co strona internetowa). Hope you understand co mam na myśli – bdictator
@bdictator - proszę zamieścić swój pełny kod. i używasz mojego kodu i zapisujesz jako png? – fraxel
Tak, używam Twojego kodu, sprawdź mój dodany kod – bdictator