Tôi đang sử dụng đoạn mã sau để thực hiện một số thao tác trên hình ảnh mà tôi nạp, nhưng tôi thấy rằng màn hình trở nên mờ khi nó là trên màn hình võng mạcCoreGraphics để hiển thị võng mạc
- (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;
}
Làm thế nào để thay đổi điều này để làm cho nó tương thích với võng mạc.
Cảm ơn trước sự giúp đỡ của bạn
nhất, DV
Cảm ơn! Phương pháp này đã giải quyết được vấn đề của tôi !! – DKV
Nếu bạn thay đổi CTM (ma trận biến đổi hiện tại) trong ngữ cảnh của bạn bằng cách gọi 'CGContextScaleCTM (UIGraphicsGetCurrentContext(), 2, 2)', bạn không cần phải nhân các tọa độ của mình theo cách thủ công, bạn có thể vẽ giống như bạn làm với hình ảnh không võng mạc. – epologee
Xin lỗi, quá nhanh với nhận xét và quá muộn để chỉnh sửa. Nếu bạn làm như thế này, bạn không cần phải tự mình cân nhắc tất cả các tọa độ: thang đo 'CGFloat scale = [[UIScreen mainScreen]]; CGContextScaleCTM (UIGraphicsGetCurrentContext(), tỷ lệ, tỷ lệ); ' – epologee