Search code examples
iosgpuimageimage-scaling

GPUImageTransformFilter is cropping image instead of scaling it down


I am trying to scale my image using GPUImage, here is my code:

float largerDimension = MAX(img.size.width, img.size.height);
if(largerDimension > 1024){
    float scaleRatio = 1024 / largerDimension;
    GPUImageTransformFilter *xff = [[GPUImageTransformFilter alloc] init];
    xff.affineTransform = CGAffineTransformMakeScale(scaleRatio, scaleRatio);
    img = [xff imageByFilteringImage:img];
}

I'm expecting the filter to scale my image, but instead, it's cropping the middle of the image. What am I doing wrong?


Solution

  • Instead of using a transform filter, I've achieved the desired effect using using plain GPUImageFilter and forceProcessingAtSize: method, providing the exact dimensions of my desired output.