我得到一个方形徽标,需要将它变成round_corner,搜索了一会儿,并得到以下代码“正在工作”:
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)
然后我保存了返回的图像对象,但是像这样的角落有白色背景,
我该如何摆脱白色背景或使其不可见?提前谢谢〜
编辑:这是fraxel的代码,谢谢〜
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')`
很抱歉..我需要将图像的形状设置为椭圆形而不是矩形,即从图片上写东西,并@fraxel,我仍然可以看到您为我处理的图片中的白色角
首先,请确保以支持透明性的格式保存图像。PNG
有,JPG
没有…下面是一些相当不错的代码,它们将添加透明角。它是这样的:
rad
使用draw.ellipse()
putalpha()
png
,从而保持透明度。这是代码:
import Image, ImageDraw
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, 255)
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
im = Image.open('tiger.jpg')
im = add_corners(im, 100)
im.save('tiger.png')
弯边老虎示例:
这是您的图像,使用此代码处理后,产生透明的角:
我正在将PNG转换为JPG。透明背景默认变为黑色。我需要它是白色的。
所需的输出图像: 我已经尝试了代码,我的输出是这样的。请帮助我生产我所显示的输出。 我的代码: 我需要一个白色透明的背景和所需的输出图像显示的对齐。请帮我提些建议。
我遇到了让情节本身透明的方法,但是我如何让背景透明呢?没有Qt有办法做到这一点吗?我希望情节在背景窗口上,例如,假设我正在运行Chrome,我希望情节在chrome窗口上,其内容可见。
我没有使用 CSS3。所以我不能使用或属性。如果不使用这些属性,如何使 透明?它应该是此链接中的文本框示例。此处的文本框背景色是透明的。我想做同样的事情,但不使用上面提到的属性。
问题内容: 使JTable背景透明不是那么容易。我只想查看单元格的文本内容。 问题答案: 如果表本身或单元格都不透明,则该表将是透明的: 如果表格位于中,则也将使其透明: 至少,您可以删除网格线: 一个简单的结果是一件很大的工作…
问题内容: 我没有使用CSS3。所以我不能使用或属性。不使用这些属性,如何使a透明?它应该是此链接中的文本框示例。这里的文本框背景色是透明的。我想做同样的事情,但是不使用上面提到的属性。 问题答案: 不透明度使您透明或透明。在这里查看示例Fiddle。 注意:这些不是CSS3属性
本文向大家介绍android如何设置Activity背景色为透明色,包括了android如何设置Activity背景色为透明色的使用技巧和注意事项,需要的朋友参考一下 一直听说透明效果的activity,到底长啥样呢?来张图看看,上面这个白色背景的就是 方法一 在res/values/styles.xml,设置Activity的样式 color Manifest.xml中添加 这样就给你的acti
通过使用启用透明背景功能,可以使用自定义图片作为背景。 controller.setTransparentBackground( true );