ich den folgenden Code verwenden einige Manipulationen auf dem Bild auszuführen, die ich geladen, aber ich finde, dass das Display verschwommen wird, wenn es auf dem Retina-Display istCore Graphics für Retina-Display
- (UIImage*)createImageSection:(UIImage*)image section:(CGRect)section
{
float originalWidth = image.size.width ;
float originalHeight = image.size.height ;
int w = originalWidth * section.size.width;
int h = originalHeight * section.size.height;
CGContextRef ctx = CGBitmapContextCreate(nil, w, h, 8, w * 8,CGImageGetColorSpace([image CGImage]), kCGImageAlphaPremultipliedLast);
CGContextClearRect(ctx, CGRectMake(0, 0, originalWidth * section.size.width, originalHeight * section.size.height)); // w + h before
CGContextTranslateCTM(ctx, (float)-originalWidth * section.origin.x, (float)-originalHeight * section.origin.y);
CGContextDrawImage(ctx, CGRectMake(0, 0, originalWidth, originalHeight), [image CGImage]);
CGImageRef cgImage = CGBitmapContextCreateImage(ctx);
UIImage* resultImage = [[UIImage alloc] initWithCGImage:cgImage];
CGContextRelease(ctx);
CGImageRelease(cgImage);
return resultImage;
}
Wie kann ich ändern Dies macht es zu Netzhaut kompatibel.
Vielen Dank im Voraus für Ihre Hilfe
Best, DV
Dank! Diese Methode hat mein Problem gelöst !! – DKV
Wenn Sie die CTM (aktuelle Transformationsmatrix) Ihres Kontexts ändern, indem Sie 'CGContextScaleCTM (UIGraphicsGetCurrentContext(), 2, 2)' aufrufen, müssen Sie Ihre Koordinaten nicht manuell multiplizieren, sondern können genauso zeichnen wie Sie Nicht-Retina-Bilder. – epologee
Sorry, war zu schnell mit dem Kommentar und zu spät für den Schnitt. Wenn Sie es so machen, müssen Sie nicht alle Koordinaten selbst skalieren: 'CGFloat scale = [[UIScreen mainScreen] scale]; CGContextScaleCTM (UIGraphicsGetCurrentContext(), scale, scale); ' – epologee