Files
ManagerDemo/Pods/DTFoundation/Core/Source/DTCoreGraphicsUtils.m
T
2014-08-08 13:27:54 +08:00

95 lines
2.8 KiB
Objective-C

//
// DTCoreGraphicsUtils.m
// DTFoundation
//
// Created by Oliver Drobnik on 7/18/10.
// Copyright 2010 Cocoanetics. All rights reserved.
//
#import "DTCoreGraphicsUtils.h"
CGSize DTCGSizeThatFitsKeepingAspectRatio(CGSize originalSize, CGSize sizeToFit)
{
CGFloat necessaryZoomWidth = sizeToFit.width / originalSize.width;
CGFloat necessaryZoomHeight = sizeToFit.height / originalSize.height;
CGFloat smallerZoom = MIN(necessaryZoomWidth, necessaryZoomHeight);
return CGSizeMake(roundf(originalSize.width*smallerZoom), roundf(originalSize.height*smallerZoom));
}
CGSize DTCGSizeThatFillsKeepingAspectRatio(CGSize originalSize, CGSize sizeToFit)
{
CGFloat necessaryZoomWidth = sizeToFit.width / originalSize.width;
CGFloat necessaryZoomHeight = sizeToFit.height / originalSize.height;
CGFloat largerZoom = MAX(necessaryZoomWidth, necessaryZoomHeight);
return CGSizeMake(roundf(originalSize.width*largerZoom), roundf(originalSize.height*largerZoom));
}
BOOL DTCGSizeMakeWithDictionaryRepresentation(NSDictionary *dict, CGSize *size)
{
NSNumber *widthNumber = [dict objectForKey:@"Width"];
NSNumber *heightNumber = [dict objectForKey:@"Height"];
if (!widthNumber || !heightNumber)
{
return NO;
}
if (size)
{
size->width = [widthNumber floatValue];
size->height = [heightNumber floatValue];
}
return YES;
}
NSDictionary *DTCGSizeCreateDictionaryRepresentation(CGSize size)
{
NSNumber *widthNumber = [NSNumber numberWithFloat:size.width];
NSNumber *heightNumber = [NSNumber numberWithFloat:size.height];
return [NSDictionary dictionaryWithObjectsAndKeys:widthNumber, @"Width", heightNumber, @"Height", nil];
}
BOOL DTCGRectMakeWithDictionaryRepresentation(NSDictionary *dict, CGRect *rect)
{
NSNumber *widthNumber = [dict objectForKey:@"Width"];
NSNumber *heightNumber = [dict objectForKey:@"Height"];
NSNumber *xNumber = [dict objectForKey:@"X"];
NSNumber *yNumber = [dict objectForKey:@"Y"];
if (!widthNumber || !heightNumber || !xNumber || !yNumber)
{
return NO;
}
if (rect)
{
rect->origin.x = [xNumber floatValue];
rect->origin.y = [yNumber floatValue];
rect->size.width = [widthNumber floatValue];
rect->size.height = [heightNumber floatValue];
}
return YES;
}
NSDictionary *DTCGRectCreateDictionaryRepresentation(CGRect rect)
{
NSNumber *widthNumber = [NSNumber numberWithFloat:rect.size.width];
NSNumber *heightNumber = [NSNumber numberWithFloat:rect.size.height];
NSNumber *xNumber = [NSNumber numberWithFloat:rect.origin.x];
NSNumber *yNumber = [NSNumber numberWithFloat:rect.origin.y];
return [NSDictionary dictionaryWithObjectsAndKeys:widthNumber, @"Width", heightNumber, @"Height", xNumber, @"X", yNumber, @"Y", nil];
}
CGPoint DTCGRectCenter(CGRect rect)
{
return (CGPoint){CGRectGetMidX(rect), CGRectGetMidY(rect)};
}