Unity3D读取Ios中的动态UIImage图片内容!!!!

本文详细介绍了如何将C#代码与Unity引擎结合,通过dllimport方法,将图片资源转换为字符串并写入指定文件,进而通过Texture2D组件加载并展示图像。包括图片资源的读取、文件路径的获取、文件写入及最终在Unity场景中通过GUI展示图像的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
extern "C"
{
    const char*  _GetImage()
    {
        NSLog(@"I am in Begin");
        UIImage *myUIImage = [UIImage imageNamed:@"Test.jpg"];
        NSData *imageData = UIImagePNGRepresentation(myUIImage);
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectoryNSUserDomainMaskYES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"Test.jpg"]; //Add the file name
        NSLog(@"filePath %@",filePath);
        [imageData writeToFile:filePath atomically:YES];
        return MakeStringCopy([filePath UTF8String]);
    }
}

这里用到的还是dllimport方法,需要先在xcode中写好来,原理就是叫一个UIImage文件变成字符串,然后写入到指定的文件,最后把这个文件的位置给抛出来


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[DllImport ("__Internal")]   
private static extern String _GetImage();
    public Texture2D texture2D;
        
    void Start () {
        texture2D = new Texture2D (200, 200);
        imagePath = GetImage();
        byte[] imageBytes = File.ReadAllBytes(imagePath);
        texture2D.LoadImage(imageBytes);
    }
        
    void OnGUI () {
        GUI.Button (new Rect(20,20,100,100),texture2D);
    }
        
    public static String GetImage()
    {
        if (Application.platform != RuntimePlatform.OSXEditor)
        {
            return _GetImage();
        }  
        else
        {
             return @"Hello";
        }
    }

交给unity使用,unity中通过texture2d的loadimage方法把字符串重新拼接变成了texture2d,最后展示出来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值