Note that there are some explanatory texts on larger screens.

plurals
  1. POhow to round_corner a logo without white background(transparent?) on it using pil?
    primarykey
    data
    text
    <p>I got a square logo and I need to round_corner it, searched for a while and got the follow code "working":</p> <pre><code>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) </code></pre> <p>then I saved the returned image object,however it has white background in the corner <a href="http://www.flickr.com/photos/76230909@N03/7484692296/in/photostream" rel="noreferrer"> like this </a> How can i get rid of the white background or make it invisible? Thanks in advance~</p> <p>EDIT: here is the code by fraxel,thanks~</p> <pre><code>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')` </code></pre> <p>I am so sorry..I need the image shape to be ellipse not rectangle,I.E. the write stuff off the pic,and @fraxel, I still can see the white corner in the pic you processed for me</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload