首页 > 其他分享 >ios CCUIImage.m

ios CCUIImage.m

时间:2024-07-26 19:26:40浏览次数:14  
标签:__ newSize CC self ios CCUIImage endif UIImage

//
//  CCUIImage.h
//  CCFC_IPHONE
//
//


#ifndef CC_UI_IMAGE_H
#define CC_UI_IMAGE_H




#ifdef __OBJC__


#import "CCConfig.h"


#define CREATE_UIIMAGE(imgPath)         [UIImage imageNamed:(imgPath)]
#define CREATE_UIIMAGEVIEW(imgPath)     [[[UIImageView alloc] initWithImage:CREATE_UIIMAGE(imgPath)] autorelease]


#define MACRO_DEFAULT_NAVIGATION_BARBUTTON_ITEM_ICON_WIDTH              20
#define MACRO_DEFAULT_NAVIGATION_BARBUTTON_ITEM_ICON_HEIGHT             20


#if CC_ENABLE_PRIVATE_API && CC_COMPILE_PRIVATE_CLASS
#ifdef  __cplusplus
extern "C" {
#endif
        
 CGImageRef UIGetScreenImage();
        
#ifdef  __cplusplus
}
#endif
#endif


@interface UIImage(cc)


// returns the scaled image
- (UIImage *)scale:(float)scaleSize;


// resize the img to indicated newSize
- (UIImage *)resizeImage:(CGSize)newSize;


// save PNG file to path
- (BOOL)savePNGToPath:(NSString *)fileFullPath;


// save the img to photos album
- (void)saveImgToPhotosAlbum;


// get part of the image
- (UIImage *)getPartOfImage:(CGRect)partRect;


// returns UIImage * from text
+ (UIImage *)imageFromText:(NSString *)text font:(UIFont *)font;




#if CC_ENABLE_PRIVATE_API && CC_COMPILE_PRIVATE_CLASS
+ (UIImage *)getFullScreenImg;
#endif


@end




#endif  // __OBJC__
#endif  // CC_UI_IMAGE_H

 

//
//  CCUIImage.m
//  CCFC
//
//






@implementation UIImage(cc)


// returns the scaled image
- (UIImage *)scale:(float)scaleSize
{
        
        UIGraphicsBeginImageContext(
                        CGSizeMake(self.size.width * scaleSize, self.size.height * scaleSize));
        [self drawInRect:CGRectMake(0, 0, self.size.width * scaleSize, self.size.height * scaleSize)];
        UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
                                                                
        return scaledImage;
}


// resize the img to indicated newSize
- (UIImage *)resizeImage:(CGSize)newSize
{
        UIGraphicsBeginImageContext(CGSizeMake(newSize.width, newSize.height));
        [self drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
        UIImage *resizeImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();


        return resizeImage;
        
}


// save PNG file to path
- (BOOL)savePNGToPath:(NSString *)fileFullPath
{
        return [UIImagePNGRepresentation(self) writeToFile:fileFullPath atomically:YES];
}


// save the img to photos album
- (void)saveImgToPhotosAlbum
{
        UIImageWriteToSavedPhotosAlbum(self, nil, nil, nil);
}


// get part of the image
- (UIImage *)getPartOfImage:(CGRect)partRect
{
        CGImageRef imageRef = self.CGImage;
        CGImageRef imagePartRef = CGImageCreateWithImageInRect(imageRef, partRect);
        return [UIImage imageWithCGImage:imagePartRef];
}


// returns UIImage * from text
+ (UIImage *)imageFromText:(NSString *)text font:(UIFont *)font
{            
        CGSize size  = [text sizeWithFont:font];     
        UIGraphicsBeginImageContext(size);  
        
        CGContextRef ctx = UIGraphicsGetCurrentContext();       
        [text drawAtPoint:CGPointMake(0, 0) withFont:font];      
        UIImage *image = UIGraphicsGetImageFromCurrentImageContext();          
        UIGraphicsEndImageContext(); 
        CGContextRelease(ctx);
        
        return image;  
} 


#if CC_ENABLE_PRIVATE_API && CC_COMPILE_PRIVATE_CLASS
+ (UIImage *)getFullScreenImg
{
        CGImageRef screenImg = UIGetScreenImage();
        return [UIImage imageWithCGImage:screenImg];
}
#endif


@end


微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

欢迎关注。助您在编程路上越走越好!

标签:__,newSize,CC,self,ios,CCUIImage,endif,UIImage
From: https://blog.csdn.net/cxsjabcabc/article/details/7185590

相关文章

  • python 中的智能 Cisco IOS 差异
    之前:hostnameFoo!interfaceGigabitEthernet1/1switchportmodetrunkswitchporttrunkallowedvlan10,20,30!interfaceGigabitEthernet1/2ipaddress192.0.2.1255.255.255.128noipproxy-arp!之后:hostnameFoo!interfaceGigabitEt......
  • iOS开发- RunLoop
    RunLoop用于管理事件的循环处理机制。运行循环在应用程序的主线程中自动启动,负责监听和分发各种事件,包括用户交互(如触摸事件)、定时器事件、选择器调用和其他异步回调。运行循环的作用运行循环的主要作用包括:处理输入事件:运行循环监听用户的输入,如触摸、点击和滑动事件,并将它们......
  • iOS开发基础143-性能优化
    我们可以先构建一个详细的大纲,然后在每个部分详细阐述。下面是一个针对iOS性能优化的详细大纲:一.App启动时间优化A.启动分类冷启动热启动B.冷启动优化减少启动时的动态库加载尽可能减少动态库的数量,采用静态库或者合并一部分动态库。优化启动时的代码执行延迟......
  • iOS开发基础142-广告归因
    IDFAIDFA是苹果为iOS设备提供的一个唯一标识符,专门用于广告跟踪和相关的营销用途。与之对应的,在Android平台的是谷歌广告ID(GoogleAdvertisingID)。IDFA的工作原理:IDFA是分配给每个设备的唯一标识符,广告商和开发者可以利用IDFA跟踪用户对广告的点击情况,评估广告效率等。从iOS1......
  • 鸿蒙 HarmonyOS axios封装
    ✍️作者简介:小北编程(专注于HarmonyOS、Android、Java、Web、TCP/IP等技术方向)......
  • iOS开发_IQKeyboardManager的启用/禁用
    在某个界面完全禁用IQKeyboard-(void)viewWillAppear:(BOOL)animated{ [superviewWillAppear:animated]; //页面appear禁用 [IQKeyboardManagersharedManager].enable=NO;}-(void)viewWillDisappear:(BOOL)animated{ [superviewWillDisappear:animated];......
  • iOS开发基础141-音频解码
    音频解码是指将压缩的音频数据转换为PCM(脉冲编码调制)数据的过程。这个过程允许我们处理和播放多种格式的音频文件。在iOS开发中,AudioToolbox提供了一系列底层C语言API来支持音频的解码。下面,我们将创建一个简单的音频解码工具类,使用AudioToolbox中的API来解码AAC格式的音频文件,并......
  • iOS开发基础140-音频编码
    音频编码是将音频信号转换为数字信号的过程,这样可以便于存储、传输和解码。在iOS开发中,我们通常使用CoreAudio来处理音频编码和解码的过程。本篇文章主要介绍如何使用CoreAudio的AudioToolbox框架来进行音频编码。音频编码的步骤音频编码的过程通常涉及以下几个步骤:设置音......
  • iOS开发基础137-音视频编解码简介
    音视频编解码是iOS开发中一个高级且复杂的领域,涉及到大量的API和涉及音视频数据处理的知识。在iOS中,通常使用AVFoundation框架进行音视频处理,而对于编解码,可以利用VideoToolbox和AudioToolbox来实现。下面将分别介绍音频和视频的编解码过程,并提供一些基本的封装。视频编解码编码......
  • iOS开发基础138-视频编码
    为完善视频编码的封装和提供一定的拓展性,以下是视频编码的详细示例,其中包括编码参数设置和数据提取处理。以下示例侧重于视频编码部分。视频编码器示例下面的代码示例展示了一个视频编码器的实现,包括如何设置关键编码参数和从回调中提取H.264数据。//VideoEncoder.h#import<......