2

このコードを使用して画像を回転させています

- (CGImageRef)CGImageRotatedByAngle:(CGImageRef)imgRef angle:(CGFloat)angle
{

    CGFloat angleInRadians = angle * (M_PI / 360);

    CGFloat width = CGImageGetWidth(imgRef);

    CGFloat height = CGImageGetHeight(imgRef);


    CGRect imgRect = CGRectMake(0, 0, width, height);

    CGAffineTransform transform = CGAffineTransformMakeRotation(angleInRadians);

    CGRect rotatedRect = CGRectApplyAffineTransform(imgRect, transform);


    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();

    CGContextRef bmContext = CGBitmapContextCreate(NULL,
                                                   rotatedRect.size.width,
                                                   rotatedRect.size.height,
                                                   8,
                                                   0,
                                                   colorSpace,
                                                   kCGImageAlphaPremultipliedFirst);

    CGContextSetAllowsAntialiasing(bmContext, YES);

    CGContextSetShouldAntialias(bmContext, YES);

    CGContextSetInterpolationQuality(bmContext, kCGInterpolationHigh);

    CGColorSpaceRelease(colorSpace);

    CGContextTranslateCTM(bmContext,

                          +(rotatedRect.size.width/2),
                          +(rotatedRect.size.height/2));

    CGContextRotateCTM(bmContext, angleInRadians);

    CGContextTranslateCTM(bmContext,
                          -(rotatedRect.size.width/2),
                          -(rotatedRect.size.height/2));

    CGContextDrawImage(bmContext, CGRectMake(0, 0,
                                             rotatedRect.size.width,
                                             rotatedRect.size.height),
                       imgRef);




    CGImageRef rotatedImage = CGBitmapContextCreateImage(bmContext);

    CFRelease(bmContext);
   // [(id)rotatedImage autorelease];

    return rotatedImage;


}

これにより、私はこのような結果の画像を持っています..これは私が得ているものです

それらの空白はそこにあってはならず、そのサイズの同じパターンに従って、その周りに空白がない..回転した画像....

助けてください..よろしくお願いします

4

0 に答える 0