Comments (4)
also use alpha color...
dc.SetRGBA(1, 1, 1,100)
... for a transparent watermark
from gg.
you need to translate to the centre of the rotation
(below works, i think, but has changes other than just bug fix.)
package main
import (
"flag"
//"fmt"
"github.com/fogleman/gg"
"github.com/golang/freetype/truetype"
"golang.org/x/image/font/gofont/goregular"
)
func main() {
xPtr := flag.Int("x", 250, "Valor de X")
yPtr := flag.Int("y", 250, "Valor de Y")
rotatePtr := flag.Int("rotate", -45, "Angulo de rotação em graus")
fontSizePtr := flag.Int("fontSize", 32, "Tamanho da fonte")
sizePtr := flag.Int("size", 500, "Tamanho do Canvas (size x size)")
txtPtr := flag.String("text", "Willian & Simone", "Texto para imprimir")
imageFilePtr := flag.String("file", "rotated-text.go.png", "Arquivo para salvar a imagem")
flag.Parse()
dc := gg.NewContext(*sizePtr, *sizePtr)
dc.SetRGB(1, 1, 1)
dc.Clear()
font, err := truetype.Parse(goregular.TTF)
if err != nil {
panic("truetype.Parse()")
}
face := truetype.NewFace(font, &truetype.Options{
Size: float64(*fontSizePtr),
})
dc.SetFontFace(face)
dc.SetRGB(0, 0, 0)
// border inset 10px
dc.DrawRectangle(10, 10, float64(*sizePtr)-20, float64(*sizePtr)-20)
dc.Stroke()
dc.Translate(float64(*xPtr), float64(*yPtr))
dc.Rotate(gg.Radians(float64(*rotatePtr))) // Left to Right and Up
// does its own centring
dc.DrawStringAnchored(*txtPtr, 0, 0,.5,.5)
w, h := dc.MeasureString(*txtPtr)
// added border
dc.DrawRectangle(-w/2-10,-h/2, w+20, h+10)
dc.Stroke()
dc.SavePNG(*imageFilePtr)
}
from gg.
I'll check it later, after I get home!
Thank you!
from gg.
Hi @splace,
I tested it and work!
I looks like a missed the detail in the documentation about the function DrawStringAnchored()
.
I started some test and now I'll look for a function group to save the canvas status (colors, etc.) and restore it after.
And ofcourse, add the code to read a existing image and apply the watermark at it center without compromised the original image & text.
from gg.
Related Issues (20)
- Support More Font Formats
- Support Set Font Weight for VF (Variable Fonts) HOT 4
- Opition to turn anti-aliasing off ? HOT 1
- Context SetTransform / GetTransform / ApplyTransform
- Why not add interface about return the IM
- How to Spread Text Watermarks on an Entire Picture HOT 1
- Is this library faster than setting pixels in image.Image?
- Allow to reset mask.
- Draw a shape with empty space inside. HOT 1
- Improvement to output files HOT 2
- Is this repo still being maintained? HOT 2
- Can't scale an image HOT 1
- Multi-line text not working HOT 1
- Support save svg or any vector graphic?
- Wrong line Cap style for closed shapes. HOT 1
- `NewConicGradient` is only exists in the master branch
- SetLineWidth , How to change only the height of the line instead of its width
- Antialiasing
- DrawStringWrapped draws text with offset comparing to DrawStringAnchored
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gg.