golang/freetype

How to draw translucent strings?

pkptzx opened this issue · 7 comments

i try this:

c := freetype.NewContext()  
...  
c.SetSrc(image.NewUniform(color.RGBA{255, 0, 0, 180})) // 

but always very strange...

Can someone help me?
Thanks

To draw transparent fonts, use png format.

要绘制透明字体,请使用png格式。

那你的意思是先绘制到png上,再图片叠加?那还是一样的问题,半透明的字怎么绘制?
就是水印

To draw transparent fonts, use png format.

丑的一塌糊涂

要绘制透明字体,请使用PNG格式。

那你的意思是先绘制到PNG上,再图片叠加?那还是一样的问题,半透明的字怎么绘制?
就是水印

是的。先生成字体png透明图片。然后叠加。

c := freetype.NewContext()  
...  
c.SetSrc(image.NewUniform(color.RGBA{255, 0, 0, 180})) // 
pt := freetype.Pt(X, Y)
_, err = c.DrawString(s, pt)

要绘制透明字体,请使用PNG格式。

那你的意思是先绘制到PNG上,再图片叠加?那还是一样的问题,半透明的字怎么绘制?
就是水印

是的。先生成字体png透明图片。然后叠加。

c := freetype.NewContext()  
...  
c.SetSrc(image.NewUniform(color.RGBA{255, 0, 0, 180})) // 
pt := freetype.Pt(X, Y)
_, err = c.DrawString(s, pt)

你没懂我意思吧?我要文字透明(半透明),不是png背景透明....

要绘制透明字体,请使用PNG格式。

那你的意思是先绘制到PNG上,再图片叠加?那还是一样的问题,半透明的字怎么绘制?
就是水印

是的。先生成字体png透明图片。然后叠加。

c := freetype.NewContext()  
...  
c.SetSrc(image.NewUniform(color.RGBA{255, 0, 0, 180})) // 
pt := freetype.Pt(X, Y)
_, err = c.DrawString(s, pt)

你没懂我意思吧?我要文字透明(半透明),不是png背景透明....

自己好好看看代码是不是文字透明...

color.RGBA{255, 0, 0, 180}

Go uses premultipled alpha. The first 255 should be 180.