mirror of
https://github.com/wu736139669/ManagerDemo.git
synced 2026-08-05 05:55:42 +00:00
95 lines
2.8 KiB
Objective-C
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)};
|
|
} |