Я новичок в кварце 2d, я только что создал контекст растрового изображения 400 * 300, а затем заполнил прямоугольник 200 * 200, но я получил прямоугольное изображение, а не квадратное, кто-нибудь может это объяснить?
override func draw(_ rect: CGRect) {
// Drawing code
let myBoundingBox = UIScreen.main.bounds
let myBitmapContext = myCreateBitmapContext(pixelWidth: 400 , pixelHeight: 300 )
myBitmapContext?.setFillColor(red: 1, green: 0, blue: 0, alpha: 1)
myBitmapContext?.fill(.init(x: 0, y: 0, width: 200, height: 200))
guard let myImage = myBitmapContext?.makeImage() else { return }
let context = UIGraphicsGetCurrentContext()
context?.draw(myImage, in: myBoundingBox)
}
func myCreateBitmapContext(pixelWidth: Int, pixelHeight: Int) -> CGContext? {
let bytesPerRow = pixelWidth * 4
guard let colorSpace = CGColorSpace.init(name: CGColorSpace.sRGB) else { return nil }
let context = CGContext.init(data: nil, width: pixelWidth, height: pixelHeight, bitsPerComponent: 8, bytesPerRow: bytesPerRow, space: colorSpace, bitmapInfo: CGImageAlphaInfo.premultipliedLast.rawValue)
return context
}
![Drawing image](https://i.stack.imgur.com/NuEfd.png)