CGImageCreateWithImageInRectに関するドキュメントは次のとおりです。
パラメータとして CGRect オブジェクトを取ります。私が理解していることから、CGRectはポイント単位です
ただし、ドキュメントには次のように記載されています。
「結果の長方形内のピクセルを参照し、長方形内の最初のピクセルをサブイメージの原点として扱います。」
これは不正確に思われ、UIImage のサイズを変更する必要があるときに証明されました。画像のサイズに画面のスケールを掛ける必要がありました。そうしないと、画像のサイズが間違っていました
var imageRef:CGImageRef = CGImageCreateWithImageInRect(image.CGImage, CGRectMake(0, 0, image.size.width*UIScreen.mainScreen().scale, image.size.height*UIScreen.mainScreen().scale))
縮尺を掛けないと、画像が小さすぎます。
これは悪いドキュメントです (ポイント単位の CGRect を取り、ピクセルとして読み取るべきではありません)、またはここで基本的なことを理解していませんか?