'리사이징'에 해당되는 글 1건

  1. 2010.06.21 [펌] 이미지 리사이징, 크롭, 마스킹, 그림자 함수 4종 세트
아이폰어플개발정보2010. 6. 21. 09:29
[펌] 이미지 리사이징, 크롭, 마스킹, 그림자 함수 4종 세트
이미지를 조작하면서 쓰는 함수 3종 세트 입니다. 출처는 구글링+웹+ 일부 상태가 이상한건 직접 수정했습니다. 혹시

문제가 있으면 알려주세요~ 사용법은 잘아시겠죠??

먼저 리사이징 함수..  

-(UIImage *)resizeImage:(UIImage *)image width:(float)resizeWidth height:(float)resizeHeight{

UIGraphicsBeginImageContext(CGSizeMake(resizeWidth, resizeHeight));

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextTranslateCTM(context, 0.0, resizeHeight);

CGContextScaleCTM(context, 1.0, -1.0);

CGContextDrawImage(context, CGRectMake(0.0, 0.0, resizeWidth, resizeHeight), [image CGImage]);

UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

return scaledImage;

}

- (UIImage*)imageByCropping:(UIImage *)imageToCrop toRect:(CGRect)rect

{

UIGraphicsBeginImageContext(rect.size);

CGContextRef currentContext = UIGraphicsGetCurrentContext();

CGContextTranslateCTM(currentContext, 0.0, rect.size.height);

CGContextScaleCTM(currentContext, 1.0, -1.0);

CGRect clippedRect = CGRectMake(0, 0, rect.size.width, rect.size.height);

CGContextClipToRect( currentContext, clippedRect);

CGRect drawRect = CGRectMake(rect.origin.x * -1,rect.origin.y * -1,imageToCrop.size.width,imageToCrop.size.height);

CGContextDrawImage(currentContext, drawRect, imageToCrop.CGImage);

CGContextScaleCTM(currentContext, 1.0, -1.0);

UIImage *cropped = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

return cropped;

}



-(UIImage *)maskingImage:(UIImage *)image maskImage:(NSString)_maskImage{

CGImageRef imageRef = [image CGImage];

CGImageRef maskRef = [[UIImage imageNamed:_maskImage] CGImage];

    

CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),

CGImageGetHeight(maskRef),

CGImageGetBitsPerComponent(maskRef),

CGImageGetBitsPerPixel(maskRef),

CGImageGetBytesPerRow(maskRef),

CGImageGetDataProvider(maskRef),

NULLfalse);

    

CGImageRef masked = CGImageCreateWithMask(imageRef, mask);

CGImageRelease(mask);

    

UIImage *maskedImage = [UIImage imageWithCGImage:masked];

CGImageRelease(masked);

     return maskedImage;

}

이미지 그림자 넣는 함수 

-(UIImage *) shadowImage:(UIImage *)image{

//3 pixel shadow blur 픽셀치를 조정해서 세도우 블뤄 효과의 크기를 조절할수 있습니다

UIGraphicsBeginImageContext(CGSizeMake(image.size.width + 6, image.size.height + 6));

    CGContextSetShadow(UIGraphicsGetCurrentContext(),CGSizeMake(3.0f, -3.0f),3.0f);

[image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)];  

    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();  

    UIGraphicsEndImageContext();


return newImage;

}

[출처] - http://cafe.naver.com/mcbugi/18814




출처 : http://blog.naver.com/PostView.nhn?blogId=seogi1004&logNo=110087700462
Posted by 오늘마감

댓글을 달아 주세요

«이전  1  다음»