Skip to content

Commit

Permalink
Move main shrinking logic out of main()
Browse files Browse the repository at this point in the history
  • Loading branch information
jlnr committed Jun 14, 2013
1 parent 6d87f81 commit 4459744
Showing 1 changed file with 32 additions and 27 deletions.
59 changes: 32 additions & 27 deletions main.m
Expand Up @@ -154,6 +154,37 @@ CGImageRef CreateImageFromBytes(unsigned char *data, size_t width, size_t height
return outData;
}

void Shrink(NSString *inputFilename, NSString *outputFilename)
{
CGImageRef inImage = CreateImageFromPNG(inputFilename);
if (inImage != NULL)
{
size_t width = CGImageGetWidth(inImage);
size_t height = CGImageGetHeight(inImage);

unsigned char *inData = CreateBytesFromImage(inImage);
CGImageRelease(inImage);

if (inData != NULL)
{
unsigned char *outData = ShrinkBitmapData(inData, width, height);
free(inData);

if (outData != NULL)
{
CGImageRef outImage = CreateImageFromBytes(outData, width / 2, height / 2);
free(outData);

if (outImage != NULL)
{
SaveImageToPNG(outputFilename, outImage);
CGImageRelease(outImage);
}
}
}
}
}

int main(int argc, const char *argv[])
{
@autoreleasepool
Expand Down Expand Up @@ -183,33 +214,7 @@ int main(int argc, const char *argv[])

NSString *outputFilename = [without2x stringByAppendingPathExtension:@"png"];

CGImageRef inImage = CreateImageFromPNG(inputFilename);
if (inImage != NULL)
{
size_t width = CGImageGetWidth(inImage);
size_t height = CGImageGetHeight(inImage);

unsigned char *inData = CreateBytesFromImage(inImage);
CGImageRelease(inImage);

if (inData != NULL)
{
unsigned char *outData = ShrinkBitmapData(inData, width, height);
free(inData);

if (outData != NULL)
{
CGImageRef outImage = CreateImageFromBytes(outData, width / 2, height / 2);
free(outData);

if (outImage != NULL)
{
SaveImageToPNG(outputFilename, outImage);
CGImageRelease(outImage);
}
}
}
}
Shrink(inputFilename, outputFilename);
}
return 0;
}

0 comments on commit 4459744

Please sign in to comment.