You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To describe it more clearly, let me give an example. Now I have an image, its width and height are 100px. I want rotate this image around its center, it might be something like:
img.offset = (50, 50) // set the center point of the image as origin point
img.Rotate(90) // it will rotate around the center point
After rotate, We want to put it on canvas upper left corner:
ctx.DrawImage(img, 50, 50) // this position is the image center point's position
In the end, we get a image, which is completely in the canvas upper left corner, after being rotated 90 degrees.
How can we simply achieve this effect? I look forward to discussing it with you
The text was updated successfully, but these errors were encountered:
Thanks for reaching out! You can't rotate an image in-place before drawing it, you need to adjust the view to draw it correctly. There are other libraries that can help you rotate an image 90°, 180°, 270° before hand, but if you want to just use canvas here is an example to achieve what you want:
package main
import (
"image/png""os""github.com/tdewolff/canvas""github.com/tdewolff/canvas/renderers"
)
funcmain() {
// load imagef, err:=os.Open("lenna.png")
iferr!=nil {
panic(err)
}
lenna, err:=png.Decode(f)
iferr!=nil {
panic(err)
}
// setup canvasc:=canvas.New(200, 200)
ctx:=canvas.NewContext(c)
// set coordinate system with origin in top-leftctx.SetCoordSystem(canvas.CartesianIV)
// rotate the view at the center of the imagectx.RotateAbout(-90.0, 50.0, 50.0) // negative is counter-clockwise in CartesianIVctx.DrawImage(0, 0, lenna, canvas.DPMM(512.0/100.0)) // image is 512x512 px drawn as 100x100 mmctx.ResetView()
// output as 200x200pxrenderers.Write("out.png", c, canvas.DPMM(1.0))
}
Let me know if that works or if you have any other questions!
To describe it more clearly, let me give an example. Now I have an image, its width and height are 100px. I want rotate this image around its center, it might be something like:
After rotate, We want to put it on canvas upper left corner:
In the end, we get a image, which is completely in the canvas upper left corner, after being rotated 90 degrees.
How can we simply achieve this effect? I look forward to discussing it with you
The text was updated successfully, but these errors were encountered: