转换_转换问题 - CSDN
精华内容
参与话题
  • 一、Unity将Texture2D转换为sprite精灵格式 //转化后大小跟屏幕一样大 Sprite prite = Sprite.Create(要转换的Texture2D, new Rect(0, 0, Screen.width, Screen.height), new Vector2(0.5f, 0.5f)); //保持...

     一、Texture2D与Sprite互转

    //转化后大小跟屏幕一样大
    Sprite prite = Sprite.Create(要转换的Texture2D, 
                new Rect(0, 0, Screen.width, Screen.height),
                new Vector2(0.5f, 0.5f));
    
    //保持原有大小
    Sprite prite = Sprite.Create(原图片,
                new Rect(0, 0, 原图片.width, 原图片.height),
                new Vector2(0.5f, 0.5f));
    
    //sprite为图集中的某个子Sprite对象
            var targetTex = new Texture2D((int)sprite.rect.width, (int)sprite.rect.height);
            var pixels = sprite.texture.GetPixels(
                (int)sprite.textureRect.x,
                (int)sprite.textureRect.y,
                (int)sprite.textureRect.width,
                (int)sprite.textureRect.height);
            targetTex.SetPixels(pixels);
            targetTex.Apply();

     

     

    二、image和byte相互转换

    //将image转换成byte[]数据
    private byte[] imageToByte(System.Drawing.Image _image)
    {
        MemoryStream ms = new MemoryStream();
        _image.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg);
        return  ms.ToArray();
    }
    //将byte[]数据转换成image
    private Image byteToImage(byte[]  myByte)
    {
         MemoryStream ms = new MemoryStream(myByte);
         Image _Image = Image.FromStream(ms);
         return _Image;
    }

     

     

    三、Texture和Texture2D转化

    1、Texture转Texture2D

    a、编辑器模式下

    /// <summary>
    /// 编辑器模式下Texture转换成Texture2D
    /// </summary>
    /// <param name="texture"></param>
    /// <returns></returns>
    private Texture2D TextureToTexture2D(Texture texture) {
        Texture2D texture2d = texture as Texture2D;
        UnityEditor.TextureImporter ti = (UnityEditor.TextureImporter)UnityEditor.TextureImporter.GetAtPath(UnityEditor.AssetDatabase.GetAssetPath(texture2d));
        //图片Read/Write Enable的开关
        ti.isReadable = true; 
        UnityEditor.AssetDatabase.ImportAsset(UnityEditor.AssetDatabase.GetAssetPath(texture2d));
        return texture2d;
    }

    b、运行模式下

    /// <summary>
    /// 运行模式下Texture转换成Texture2D
    /// </summary>
    /// <param name="texture"></param>
    /// <returns></returns>
    private Texture2D TextureToTexture2D(Texture texture) {
            Texture2D texture2D = new Texture2D(texture.width, texture.height, TextureFormat.RGBA32, false);
            RenderTexture currentRT = RenderTexture.active;
            RenderTexture renderTexture = RenderTexture.GetTemporary(texture.width, texture.height, 32);
            Graphics.Blit(texture, renderTexture);
    
            RenderTexture.active = renderTexture;
            texture2D.ReadPixels(new Rect(0, 0, renderTexture.width, renderTexture.height), 0, 0);
            texture2D.Apply();
    
            RenderTexture.active = currentRT;
            RenderTexture.ReleaseTemporary(renderTexture);
    
            return texture2D;
    }

    2、Texture2D转Texture

    Texture2D->Sprite->Texture

     

     

    四、RenderTexture与Texture2D

    Texture2D转RenderTexture

     RenderTexture  computeTex = new RenderTexture (IMG_WIDTH, IMG_HEIGHT, 24); //width height depth(深度缓冲区中的位数(0、16或24)。请注意只有24位深度具有模板缓冲区)
     computeTex.enableRandomWrite = true; //设置了enableRandomWrite标记,这使你的compute shader 有权写入贴图
     computeTex.Create (); //不执行create(),Shader执行结束像素也不会被修改
    
    //利用Graphics.Blit方法给render texture 初始化赋值
    Texture2D initTex = new Texture2D (IMG_WIDTH, IMG_HEIGHT, TextureFormat.ARGB32, false);
            //set the pixels of computeTex
            for (int i = 0; i < IMG_HEIGHT; i++) {
                for (int j = 0; j < IMG_WIDTH; j++) {
                    int Count = i * IMG_WIDTH + j; 
                        initTex.SetPixel (i, j, new Color (float.Parse (dataArray[Count][0]), float.Parse (dataArray[Count][1]), float.Parse (dataArray[Count][2]), startTag));
                    }
                }
            }
    initTex.Apply ();
    
    Graphics.Blit (initTex, computeTex);//Graphics.Blit(2dtextre,destination rendertexture)

     

     

    五、操作文件File类方法

    读、写、移动、删除等      操作文件File类方法文件操作相关类知识

    展开全文
  • 总结了Java中不同数据类型转换的常用方法。

    int转Integer

    public class Main {
        public static void main(String[] args) {
            int num = 10;
            Integer newNum = num; //自动装箱
            Integer newNum2 = new Integer(num); //通过构造方法
            Integer newNum3 = Integer.valueOf(num); //通过包装类的静态方法
        }
    }
    

    Integer转int

    public class Main {
        public static void main(String[] args) {
            Integer num = new Integer(10);
            int newNum = num; //自动拆箱
            int newNum2 = num.intValue(); //调用包装类的方法
        }
    }
    

    int[]转ArrayList<Integer>

    import java.util.ArrayList;
    import java.util.List;
    
    public class Main {
        public static void main(String[] args) {
            int[] arr = new int[]{1, 3, 7, 4, 5};
            List<Integer> list = new ArrayList<>();
            for (int i : arr) {
                list.add(i);
            }
            System.out.println(list.toString()); //[1, 3, 7, 4, 5]
        }
    }
    

    Integer[]转ArrayList<Integer>

    import java.util.Arrays;
    import java.util.List;
    
    public class Main {
        public static void main(String[] args) {
            Integer[] arr = new Integer[] {1, 3, 7, 4, 5};
            List<Integer> list = Arrays.asList(arr);
            System.out.println(list.toString()); //[1, 3, 7, 4, 5]
        }
    }
    

    String转char[]

    public class Main {
        public static void main(String[] args) {
            String s = "abcd";
            char[] value = s.toCharArray();
            for (char c : value) {
                System.out.print(c + " "); //a b c d
            }
        }
    }
    

    char[]转String

    public class Main {
        public static void main(String[] args) {
            char[] value = new char[]{'a', 'b', 'c', 'd'};
            String s = new String(value); //通过String类的构造方法
            String s2 = String.valueOf(value); //String类的valueOf()方法
        }
    }
    

    char[]转ArrayList<Character>

    import java.util.ArrayList;
    import java.util.List;
    
    public class Main {
        public static void main(String[] args) {
            char[] value = new char[]{'a', 'b', 'c', 'd'};
            List<Character> list = new ArrayList<>();
            for (char c : value) {
                list.add(c);
            }
            System.out.println(list.toString());
        }
    }
    

    String[]转ArrayList<String>

    import java.util.ArrayList;
    import java.util.List;
    
    public class Main {
        public static void main(String[] args) {
            String[] strs = new String[]{"aa", "bb", "cc", "dd"};
            List<String> list = new ArrayList<>();
            for (String str : strs) {
                list.add(str);
            }
            System.out.println(list.toString()); //[aa, bb, cc, dd]
        }
    }
    

    字符串转数字

    public class Main {
        public static void main(String[] args) {
            String s = "1101";
            int num = Integer.parseInt(s); //调用相应包装类的parseXxx(String)方法
            System.out.println(num); //1101
            int num2 = Integer.parseInt(s, 2); //二进制字符串转十进制数字
            System.out.println(num2); //13
            int num3 = Integer.parseInt(s, 16); //十六进制字符串转十进制数字
            System.out.println(num3); //4353
        }
    }
    
    

    数字转字符串

    public class Main {
        public static void main(String[] args) {
            int num = 101;
            String s = String.valueOf(101);
            String s2 = num + "";
            String s3 = Integer.toString(num); //十进制数字转换为十进制表示的字符串
            System.out.println(s3); //101
            String s4 = Integer.toString(num, 2); //十进制数字转换为二进制表示的字符串
            System.out.println(s4); //1100101
            String s5 = Integer.toString(num, 16); //十进制数字转换为十六进制表示的字符串
            System.out.println(s5); //64
        }
    }
    
    展开全文
  • int 的位数不同机器不同,而int32/int64是死的 string到int int,err := strconv.Atoi(string) string到int64 int64, err := strconv....第三个参数位大小表示期望转换的结果类型,其值可以为0, 8, 16, 32和64,...

    int 的位数不同机器不同,而int32/int64是死的

    string到int  
    int,err := strconv.Atoi(string)  

    string到int64或uint64  
    int64, err := strconv.ParseInt(string, 10, 64)  

    uint64, err := strconv.ParseuInt(string, 10, 64)  
    第二个参数为基数(2~36),
    第三个参数位大小表示期望转换的结果类型,其值可以为0, 8, 16, 32和64,
    分别对应 int, int8, int16, int32和int64

    int到string  
    string := strconv.Itoa(int) 
    等价于
    string := strconv.FormatInt(int64(int),10)

    int64到string  
    string := strconv.FormatInt(int64,10)  

    第二个参数为基数,可选2~36
    对于无符号整形,可以使用FormatUint(i uint64, base int)

    float到string
    string := strconv.FormatFloat(float32,'E',-1,32)
    string := strconv.FormatFloat(float64,'E',-1,64)
     'b' (-ddddp±ddd,二进制指数)
     'e' (-d.dddde±dd,十进制指数)
     'E' (-d.ddddE±dd,十进制指数)
     'f' (-ddd.dddd,没有指数)
     'g' ('e':大指数,'f':其它情况)
     'G' ('E':大指数,'f':其它情况)

    string到float64
    float,err := strconv.ParseFloat(string,64)

    string到float32
    float,err := strconv.ParseFloat(string,32)

    int到int64
    int64_ := int64(1234)

    int  float  相互转换
    直接使用float(i) 或者 int(f) 直接进行转换即可

    string bool

    b, err := strconv.ParseBool("true") // string 转bool

    s := strconv.FormatBool(true) // bool 转string

    interface 转 string

    inter 是interface类型,转化为string类型是:str := inter.(string)

    转为其他类型也类似

    展开全文
  • 自动类型转换

    千次阅读 2019-02-01 19:51:57
     在java 程序中,不同的基本类型的值经常需要进行相互类型转换,类型转换分为自动类型转换和强制类型转换。布尔类型boolean占有一个字节,由于其本身所代码的特殊含义,boolean类型与其他基本类型不能进行类型的...

    (一)自动类型转换

         在java 程序中,不同的基本类型的值经常需要进行相互类型转换,类型转换分为自动类型转换和强制类型转换。布尔类型boolean占有一个字节,由于其本身所代码的特殊含义,boolean类型与其他基本类型不能进行类型的转换(既不能进行自动类型的提升,也不能强制类型转换), 否则,将编译出错。

        java的所有数值型变量可以进行相互转换,如果系统支持把某种基本类型的值直接赋值给另一种基本类型的变量,则这种方式成为自动类型转换。

         当把一个表数范围较小的数值或变量直接赋给另外一个表数范围比较大的变量时,系统将可以自动类型转换,否则需要强制转换。

        图中箭头左边的数值可以自动转换为右边的数值。

           (2)byte型可以转换为short、int、、long、float和double; 
      (3)short可转换为int、long、float和double; 
      (4)char可转换为int、long、float和double; 
      (5)int可转换为long、float和double; 
      (6)long可转换为float和double; 
      (7)float可转换为double; 

     

    (二)基本类型转换为字符串

    不仅如此,把任何基本类型的值和字符串进行连接运算时,基本类型的值将自动转换成为字符串类型,虽然字符串类型不是基本类型,而是引用类型。因此,如果想将基本类型的值转换为对应的字符串,可以把基本类型的值和一个空字符串进行连接。

     

       (三)强制类型转换

         强制类型转换,即强制显示的把一个数据类型转换为另外一种数据类型。

        如果希望图中箭头右边的类型转换为左边的类型,则必须进行强制类型转换,强制类型转换的格式:

      (targetValuevalue

        强制类型转换的运算符是圆括号,当进行强制类型转换的时候,类似把一个大瓶里的水倒入一个小瓶子,如果大瓶子里的水不多还好,如果大瓶子了的水很多,将会引起溢出,从而造成数据丢失这种转换也被称为缩小转换。

    (四)表达式的自动提升

       当一个算数表达式中包含多个基本类型的值的时候 ,整个算数表达式的数据类型将发生自动提升。java定义了如下的自动提升规则:     1 所有的byte类型,short类型和char类型将被提升到int类型。     2 整个算数表达式的数据类型自动提升到与表达式中最高等级操作数同样的类

    (五)总结

    1    java中整数类型默认是int类型,小数类型默认是double类型。

    2    char可以当做一种特殊的整数类型

    3    int无法转换为boolean

    4    小数类型转为整数类型,小数可能被舍弃,出现精度损失,所以需要强制转换。

    5    boolean 类型不能转换为其它数据类型。

     

     

    展开全文
  • 什么是数据转换

    千次阅读 2018-12-03 17:39:49
    数据转换定义 数据转换是将数据从一种格式或结构转换为另一种格式或结构的过程。数据转换对于数据集成和数据管理等活动至关重要。数据转换可以包括一系列活动:您可以转换数据类型,通过删除空值或重复数据来清理...
  • 1、String和int转换 (1)Sting 转为int String str = "123"; try { int a = Integer.parseInt(str); } catch (NumberFormatException e) { e.printStackTrace(); } (2)int转为String String ...
  • 图像风格转换(Image style transfer)

    万次阅读 多人点赞 2016-12-20 23:39:41
    图像风格转换是最近新兴起的一种基于深度学习的技术,它的出现一方面是占了卷积神经网络的天时,卷积神经网络所带来的对图像特征的高层特征的抽取使得风格和内容的分离成为了可能。另一方面则可能是作者的灵感,内容...
  • 数制及其的互相转换

    千次阅读 2018-08-07 19:00:37
    二进制、八进制、十六进制如何转换为十进制 十进制如何转换为二进制、八进制、十六进制 二进制、八进制、十六进制之间互相转换 参考书籍:计算机组成原理 什么是数制 数制:由低位向高位进位计数的方法...
  • js ↵ 换行 转换 br /n

    2020-05-27 10:49:38
    前端 JS ↵转换成 /n 转换成 从json数组里面拿到的数据是 1.我好开心啊囖囖咯↵哦哦啦啦啦↵ 放在浏览器console.log打印出来自己就换行了 但是 在页面显示是个空格 所以遇见这个问题 我们得先把它转成字符串 // ...
  • MP4格式转换为AMV格式

    万次阅读 2008-04-28 17:11:00
    这几天,正好有一个mp4视频文件,我想在转换为AMV文件,在mp3里播放.可是不能使用AMV转换精灵进行转换.于是,在网上搜了好多关于mp4转换为amv的工具,我看了下,几乎没有直接从mp4转换为amv的,中间必须有个格式即先从mp4...
  • 在敲上机的时候,将用户上机信息插入到Online表中一直出现这个错误,以下...3.查看Main中是否将string类型的数据转换为Datetime类型 4.数据库插入语句错误 以下是一一对应的正确的代码 1. 2. 3. 4. ...
  • http://bm.kdd.cc/index.chuli?zy=1&u=GBK&wz=%E9%AA%8C%E8%AF%81%E7%A0%81 中文 gbk gb2312 在线转换 编码码 对照表 自动转换 在线转换(推荐)
  • 举例 ...转换完成后停止,等待ADC的下一次启动,继续从第一步开始转换 在连续转换模式下: 启动ADC1,则 1.开始转换CH0(ADC_SQR的第一通道) 转换完成后回到第一步。 启动SCAN模式下 在单次转换模式
  • 今天小编就来给大家详细的介绍下QSV视频格式转换器如何将爱奇艺视频转换成MP4格式。爱奇艺视频是国内三大视频巨头之一,同时也是最特殊的一个视频,因为该视频的格式是非常特殊的QSV格式吗,这种格式的视频只能在爱...
  • 小白兔视频格式转换器下载

    万次阅读 2019-05-02 20:02:32
    1、打开小白兔视频格式转换 www.xxxbbbttt.com 上传你的视频(腾讯qlv,爱奇艺qsv、优酷kux)都可以。 2、点击转换按钮,转换好后,我们把转换的视频下载到电脑里,就可以看到视频已经是MP4格式了。 ...
  • js面试题大坑——隐式类型转换

    万次阅读 多人点赞 2018-09-28 17:50:17
    · 1.1 隐式转换介绍 · 1.2 隐式转换规则 · 1.3 坑一:字符串连接符与算术运算符隐式转换规则混淆 · 1.4 坑二:关系运算符:会把其他数据类型转换成number之后再比较关系 · 1.5 坑三:复杂数据类型在隐式...
  • python——时间与时间戳之间的转换

    万次阅读 多人点赞 2016-05-09 19:03:40
    对于时间数据,如2016-05-05 20:28:54,有时需要与时间戳进行相互的运算,此时就需要对两种形式进行转换,在Python中,转换时需要用到time模块,具体的操作有如下的几种: 将时间转换为时间戳 重新格式化时间 时间戳...
  • 错误提示是:从字符串转换日期和/或时间时,转换失败。 两个版本分别是 :企业版,开发版 Microsoft SQL Server Developer Edition (64-bit) Microsoft SQL Server Enterprise Edition (64-bit) 企业版的报错 : ...
  • 利用TI电平钳制芯片SN74TVC16222A来做电平转换,优点在于速率可以做得快一些。
  • 格式工厂无法转换爱奇艺视频的qsv格式,腾讯视频的qlv格式,优酷视频的kux格式是有原因的,其实就是没有转换这三种视频格式的内核,在添加qsv文件,qlv文件,kux文件时,软件也不会自动选择这三种格式的视频文件。...
1 2 3 4 5 ... 20
收藏数 3,867,848
精华内容 1,547,139
关键字:

转换