Fix flipped drawing when copying/saving annotated images
The strokes were stored in top-left image coordinates but drawn into an
AppKit CGContext with a bottom-left origin, so exports came out mirrored
and offset. Flip Y in the context before stroking so annotations land
where they were drawn.
💘 Generated with Crush
Assisted-by: Crush:deepseek-v4-flash-0731
This commit is contained in:
@@ -149,6 +149,12 @@ final class CaptureModel: ObservableObject {
|
||||
let ctx = NSGraphicsContext.current!.cgContext
|
||||
// CGImage draws with a flipped Y in NSGraphicsContext
|
||||
ctx.draw(image, in: NSRect(origin: .zero, size: size))
|
||||
// Strokes are stored in TOP-LEFT image coordinates (from the SwiftUI
|
||||
// canvas), but the CGContext uses a BOTTOM-LEFT origin. Flip Y so the
|
||||
// strokes land where they were drawn.
|
||||
ctx.saveGState()
|
||||
ctx.translateBy(x: 0, y: size.height)
|
||||
ctx.scaleBy(x: 1, y: -1)
|
||||
ctx.setLineCap(.round)
|
||||
ctx.setLineJoin(.round)
|
||||
for stroke in strokes {
|
||||
@@ -162,6 +168,7 @@ final class CaptureModel: ObservableObject {
|
||||
}
|
||||
ctx.strokePath()
|
||||
}
|
||||
ctx.restoreGState()
|
||||
NSGraphicsContext.restoreGraphicsState()
|
||||
return rep.cgImage ?? image
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user