golang / freetype

The Freetype font rasterizer in the Go programming language.
Other
786 stars 184 forks source link

How to draw translucent strings? #72

Open pkptzx opened 5 years ago

pkptzx commented 5 years ago

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

haozing commented 5 years ago

To draw transparent fonts, use png format.

pkptzx commented 5 years ago

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

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

pkptzx commented 5 years ago

To draw transparent fonts, use png format.

丑的一塌糊涂

haozing commented 5 years ago

要绘制透明字体,请使用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)
pkptzx commented 5 years ago

要绘制透明字体,请使用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背景透明....

haozing commented 5 years ago

要绘制透明字体,请使用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背景透明....

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

nigeltao commented 5 years ago

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

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