0xff转data ios_print 输出16进制0xff 0xff 0xff - CSDN
  • 十进制->十六进制 Byte bytes[]={0xA6,0x27,0x0A}; NSString *strIdL = [NSStringstringWithFormat:@"%@",[[NSStringalloc]initWithFormat:@"%02lx",(long)bytes[0]]];...NSString *rechargeInfo = @“0xff0...

    十进制->十六进制

    Byte bytes[]={0xA6,0x27,0x0A};

    NSString *strIdL = [NSStringstringWithFormat:@"%@",[[NSStringalloc]initWithFormat:@"%02lx",(long)bytes[0]]];

    十六进制->十进制

    NSString *rechargeInfo = @“0xff055008”;

    NSString *cardId2 = [rechargeInfosubstringWithRange:NSMakeRange(2,2)];

    cardId2 = [NSStringstringWithFormat:@"%ld",strtoul([cardId2UTF8String],0,16)];

    NSString
    *str = @“0xff055008”;

    //先以16为参数告诉strtoul字符串参数表示16进制数字,然后使用0x%X转为数字类型

    unsignedlongred
    = strtoul([str UTF8String],0,16);

    //strtoul如果传入的字符开头是“0x”,那么第三个参数是0,也是会转为十六进制的,这样写也可以:

    unsignedlongred
    = strtoul([@"0x6587"UTF8String],0,0);

    NSLog(@“转换完的数字为:%lx”,red);
    #pragma mark --字符串处理方法

    //字符串处理方法

    +(NSString *)cutString:(NSString *)str{

    NSString *targetStr=nil;
    
    if (str.length>9) {
    
        targetStr=[str substringFromIndex:9];
    
        
    
    }
    
    return targetStr;
    

    }

    +(NSString *)transToStr:(NSData *)data{

    NSString *str=[NSStringstringWithFormat:@"%@",data];
    
    return str;
    

    }

    //字符串补零操作

    +(NSString *)addZero:(NSString *)str withLength:(int)length{

    NSString *string = nil;
    
    if (str.length==length) {
    
        return str;
    
    }
    
    if (str.length<length) {
    
        NSUInteger inter = length-str.length;
    
        for (int i=0;i< inter; i++) {
    
            string = [NSString stringWithFormat:@"0%@",str];
    
            str = string;
    
        }
    
    }
    
    return string;
    

    }

    +(NSString *)stringFromHexString:(NSString *)hexString {//

    char *myBuffer = (char *)malloc((int)[hexStringlength] / 2 +1);
    
    bzero(myBuffer, [hexString length] / 2 + 1);
    
    for (int i =0; i < [hexString length] - 1; i += 2) {
    
        unsigned int anInt;
    
        NSString * hexCharStr = [hexString substringWithRange:NSMakeRange(i, 2)];
    
        NSScanner * scanner = [[NSScanneralloc] initWithString:hexCharStr] ;
    
        [scanner scanHexInt:&anInt];
    
        myBuffer[i / 2] = (char)anInt;
    
        NSLog(@"myBuffer is %c",myBuffer[i /2] );
    
    }
    
    NSString *unicodeString = [NSStringstringWithCString:myBuffer encoding:4];
    
    NSLog(@"———字符串=======%@",unicodeString);
    
    return unicodeString; 
    

    }

    //10进制转16进制

    +(NSString *)ToHex:(longlong int)tmpid

    {

    NSString *nLetterValue;
    
    NSString *str =@"";
    
    long longint ttmpig;
    
    for (int i =0; i<9; i++) {
    
        ttmpig=tmpid%16;
    
        tmpid=tmpid/16;
    
        switch (ttmpig)
    
        {
    
            case 10:
    
                nLetterValue =@"A";break;
    
            case 11:
    
                nLetterValue =@"B";break;
    
            case 12:
    
                nLetterValue =@"C";break;
    
            case 13:
    
                nLetterValue =@"D";break;
    
            case 14:
    
                nLetterValue =@"E";break;
    
            case 15:
    
                nLetterValue =@"F";break;
    
            default:nLetterValue=[[NSStringalloc]initWithFormat:@"%lli",ttmpig];
    
                
    
        }
    
        str = [nLetterValue stringByAppendingString:str];
    
        if (tmpid == 0) {
    
            break;
    
        }
    
        
    
    }
    
    return str;
    

    }

    //将16进制的字符串转换成NSData

    • (NSMutableData *)convertHexStrToData:(NSString *)str {

      if (!str || [str length] == 0) {

        return nil;
      

      }

      NSMutableData *hexData = [[NSMutableDataalloc] initWithCapacity:8];

      NSRange range;

      if ([str length] %2 == 0) {

        range = NSMakeRange(0,2);
      

      } else {

        range = NSMakeRange(0,1);
      

      }

      for (NSInteger i = range.location; i < [strlength]; i += 2) {

        unsigned int anInt;
      
        NSString *hexCharStr = [str substringWithRange:range];
      
        NSScanner *scanner = [[NSScanneralloc] initWithString:hexCharStr];
      
        
      
        [scanner scanHexInt:&anInt];
      
        NSData *entity = [[NSDataalloc] initWithBytes:&anIntlength:1];
      
        [hexData appendData:entity];
      
        
      
        range.location += range.length;
      
        range.length = 2;
      

      }

      return hexData;

    }

    • (NSString *)convertDataToHexStr:(NSData *)data {

      if (!data || [data length] == 0) {

        return @"";
      

      }

      NSMutableString *string = [[NSMutableStringalloc] initWithCapacity:[datalength]];

      [data enumerateByteRangesUsingBlock:^(constvoid *bytes, NSRange byteRange,BOOL *stop) {

        unsigned char *dataBytes = (unsignedchar*)bytes;
      
        for (NSInteger i =0; i < byteRange.length; i++) {
      
            NSString *hexStr = [NSStringstringWithFormat:@"%x", (dataBytes[i]) &0xff];
      
            if ([hexStr length] == 2) {
      
                [string appendString:hexStr];
      
            } else {
      
                [string appendFormat:@"0%@", hexStr];
      
            }
      
        }
      

      }];

      return string;

    }

    //十进制准换为十六进制字符串

    • (NSString *)hexStringFromString:(NSString *)string{

      NSData *myD = [stringdataUsingEncoding:NSUTF8StringEncoding];

      Byte *bytes = (Byte *)[myDbytes];

      //下面是Byte转换为16进制。

      NSString *hexStr=@"";

      for(int i=0;i<[myDlength];i++)

      {

        NSString *newHexStr = [NSStringstringWithFormat:@"%x",bytes[i]&0xff];///16进制数
      
        
      
        if([newHexStr length]==1)
      
            
      
            hexStr = [NSString stringWithFormat:@"%@0%@",hexStr,newHexStr];
      
        
      
        else
      
            
      
            hexStr = [NSString stringWithFormat:@"%@%@",hexStr,newHexStr]; 
      

      }

      return hexStr;

    }

    +(NSString *) parseByteArray2HexString:(Byte[]) bytes

    {

    NSMutableString *hexStr = [[NSMutableString alloc]init];
    
    int i = 0;
    
    if(bytes)
    
    {
    
        while (bytes[i] != '\0')
    
        {
    
            NSString *hexByte = [NSString stringWithFormat:@"%x",bytes[i] & 0xff];///16进制数
    
            if([hexByte length]==1)
    
                [hexStr appendFormat:@"0%@", hexByte];
    
            else
    
                [hexStr appendFormat:@"%@", hexByte];
    
            
    
            i++;
    
        }
    
    }
    
    NSLog(@"bytes 的16进制数为:%@",hexStr);
    
    return hexStr;
    

    }

    https://www.cnblogs.com/Free-Thinker/p/5899914.html

    展开全文
  • + (NSData *) stringToHexData:(NSString *)hexStr {  int len = [hexStr length] / 2; // Target length  unsigned char *buf = malloc(len);  unsigned char *whole_byte = buf;... char byte_c
    + (NSData *) stringToHexData:(NSString *)hexStr
    {
        int len = [hexStr length] / 2;    // Target length
        unsigned char *buf = malloc(len);
        unsigned char *whole_byte = buf;
        char byte_chars[3] = {'\0','\0','\0'};
        
        int i;
        for (i=0; i < [hexStr length] / 2; i++) {
            byte_chars[0] = [hexStr characterAtIndex:i*2];
            byte_chars[1] = [hexStr characterAtIndex:i*2+1];
            *whole_byte = strtol(byte_chars, NULL, 16);
            whole_byte++;
        }
        
        NSData *data = [NSData dataWithBytes:buf length:len];
        free( buf );
        return data;
    }


    //data转换为十六进制的string
    + (NSString *)hexStringFromData:(NSData *)myD{
        
        Byte *bytes = (Byte *)[myD bytes];
        //下面是Byte 转换为16进制。
        NSString *hexStr=@"";
        for(int i=0;i<[myD length];i++)
            
        {
            NSString *newHexStr = [NSString stringWithFormat:@"%x",bytes[i]&0xff];///16进制数
            
            if([newHexStr length]==1)
                
                hexStr = [NSString stringWithFormat:@"%@0%@",hexStr,newHexStr];
            
            else
                
                hexStr = [NSString stringWithFormat:@"%@%@",hexStr,newHexStr];
        }
        NSLog(@"hex = %@",hexStr);
        
        return hexStr;
    }
    展开全文
  • 需求:字符串AD4532692D30AF836C75FA343ABC5A7E 转为16位的data :原理 先转为byte 再转为data第一种方法:- (void)strToData{ NSString *strtest =@"AF3067692D30AF836C75FA535ABC9A3E"; //以及初始化的Byte数组 ...

    需求:字符串AD4532692D30AF836C75FA343ABC5A7E 转为16位的data :< af306769 2d30af83 6c75fa53 5abc9a3e >

    原理 先转为byte 再转为data

    第一种方法:

    - (void)strToData{
    
        NSString *strtest =@"AD4532692D30AF836C75FA343ABC5A7E";
    
        //以及初始化的Byte数组
    
        Byte bt[16] = {0};
    
        for (int i =0; i < strtest.length; i+=2) {
    
            NSString *strByte = [strtest substringWithRange:NSMakeRange(i,2)];
    
            unsigned red = strtoul([strByte UTF8String],0,16);
    
            Byte b =  (Byte) ((0xff & red) );//( Byte) 0xff&iByte;
    
            bt[i/2+0] = b;
    
        }
        NSLog(@"%hhu",bt[0]);
    
        NSData *adata3 = [[NSData alloc] initWithBytes:bt length:16];
        NSLog(@"data 3 = %@",adata3);
    
    
    }

    第二种方法

    -(NSData*) strToDataWithString :(NSString *)te{
        NSMutableData* data = [NSMutableData data];
        int idx;
        for (idx = 0; idx+2 <= te.length; idx+=2) {
            NSRange range = NSMakeRange(idx, 2);
            NSString* hexStr = [te substringWithRange:range];
            NSScanner* scanner = [NSScanner scannerWithString:hexStr];
            unsigned int intValue;
            [scanner scanHexInt:&intValue];
    
            [data appendBytes:&intValue length:1];
        }
        return data;
    }

    笔记:ios 中Nsstirng,Nsdata,char,byte,UIImage 之间的转换

    1.NSData 与 NSString

    NSDate->NSString

    NSString *testString =[[NSString alloc] initWithData:testData encoding:NSUTF8StringEncoding];  

    NSString ->NSData

    NSData *aData =[aString dataUsingEncoding:NSUTF8StringEncoding];  

    2.NSData 与char

    NSData->char*

    char *test=(char*)[data bytes];  

    char ->byte

    for (int i=0;i<strlen(test);i++)  
    
    printf("%02X",test[i]&0xff);//16进制  

    char*->NSData

    byte *testData =malloc(sizeOf(byte)*16);  
    
    NSData *content =[NSData dataWithBytes:tempData length:16];  

    3.byte与NSData

    NSData->Byte数组

    NSString *testString = @"1234567890";  
    NSData *testData = [testString dataUsingEncoding: NSUTF8StringEncoding];  
    Byte *testByte = (Byte*)[testData bytes];  
    forint i=0;i<[testDatalength];i++)  
    printf"testByte = %d ",testByte[i]); 

    Byte数组-> NSData

    Byte byte[] = {01234567891011121314151617181920212223};  
    NSData *adata = [[NSData alloc] initWithBytes:byte length:24]; 

    Byte数组->16进制数

    Byte *bytes = (Byte *)[aData bytes];  
    NSString *hexStr=@"";  
    forint i=0;i<[encryDatalength];i++)  
    {  
    NSString *newHexStr = [NSString stringWithFormat:@"%x",bytes[i]&0 xff]; ///16进制数  
    if([newHexStr length]==1)  
    hexStr = [NSString stringWithFormat:@"%@0%@",hexStr,newHexStr];  
    else  
    hexStr = [NSString stringWithFormat:@"%@%@",hexStr,newHexStr];  
    }  
    NSLog(@"bytes 的16进制数为:%@",hexStr);  

    16进制数->Byte数组

    ///// 将16进制数据转化成Byte 数组  
    NSString *hexString = @"3e435fab9c34891f";//16进制字符串  
    int j=0;  
    Byte bytes[128];   
    
     ///3ds key的Byte数组, 128位  
    forint i=0;i<[hexString length];i++)  
    {  
    int int_ch;  /// 两位16进制数转化后的10进制数  
    
    unichar hex_char1 = [hexString characterAtIndex:i]; ////两位16进制数中的第一位(高位*16)  
    int int_ch1;  
    if(hex_char1 >= ""0"" &&hex_char1 <=""9"")  
    int_ch1 = (hex_char1-48)*16;   ////0 的Ascll - 48  
    else if(hex_char1 >= ""A"" &&hex_char1 <=""F"")  
    int_ch1 = (hex_char1-55)*16;//// A 的Ascll - 65  
    else  
    int_ch1 = (hex_char1-87)*16;//// a 的Ascll - 97  
    i++;  
    
    unichar hex_char2 = [hexString characterAtIndex:i]; ///两位16进制数中的第二位(低位)  
    int int_ch2;  
    if(hex_char2 >= ""0"" &&hex_char2 <=""9"")  
    int_ch2 = (hex_char2-48);//// 0 的Ascll - 48  
    else if(hex_char1 >= ""A"" &&hex_char1 <=""F"")  
    int_ch2 = hex_char2-55; //// A 的Ascll - 65  
    else  
    int_ch2 = hex_char2-87; //// a 的Ascll - 97  
    
    int_ch = int_ch1+int_ch2;  
    NSLog(@"int_ch=%d",int_ch);  
    bytes[j] = int_ch;  ///将转化后的数放入Byte数组里  
    j++;  
    }  
    NSData *newData = [[NSData alloc] initWithBytes:bytes length:128];  
    NSLog(@"newData=%@",newData); 

    4.NSData 与UIImage
    NSData ->UIImage

    UIImage *testImage =[UIImage imageWithData:testImageData]; 

    //从本地文件沙盒中取并转化为NSData

    NSString *path =[[NSBundle mainBundle] bundlePath];  
    
    NSString *name =[NSString stringWithFormat:@"testImage.png"];  
    
    NSString *finalPath =[path stringByAppendingPathComponent:name];  
    
    NSData *imageData =[NSData dataWithContentFile:finalPath];  
    
    UIimage *testImage =[UIimage imageWithData:ImageData];  

    UIImage->NSData

    NSData *imageData =UIImagePNGRepresentation(testImage);  

    参考来源:http://blog.csdn.net/wscqqlucy/article/details/8268412
    http://www.th7.cn/Program/IOS/201505/450971.shtml

    展开全文
  • &0xFF是怎么个意思

    2017-04-28 19:05:24
    今天看了下同事从网上拷贝的base64加密的代码,看到了这样如下的代码 public static String encode(byte[] data) { StringBuilder sb = new StringBuilder();... int i = 0; int b1, b2, b3; while (i

    今天看了下同事从网上拷贝的base64加密的代码,看到了这样如下的代码


    public static String encode(byte[] data) {
       StringBuilder sb = new  StringBuilder();
       int len = data.length;
       int i = 0;
       int b1, b2, b3;
       while (i < len) {
          b1 = data[i++] & 0xff;
          if (i == len) {
             sb.append(base64EncodeChars[b1 >>> 2]);
             sb.append(base64EncodeChars[(b1 & 0x3) << 4]);
             sb.append("==");
             break;
          }
          b2 = data[i++] & 0xff;
          if (i == len) {
             sb.append(base64EncodeChars[b1 >>> 2]);
             sb.append(base64EncodeChars[((b1 & 0x03) << 4)
                   | ((b2 & 0xf0) >>> 4)]);
             sb.append(base64EncodeChars[(b2 & 0x0f) << 2]);
             sb.append("=");
             break;
          }
          b3 = data[i++] & 0xff;
          sb.append(base64EncodeChars[b1 >>> 2]);
          sb.append(base64EncodeChars[((b1 & 0x03) << 4)
                | ((b2 & 0xf0) >>> 4)]);
          sb.append(base64EncodeChars[((b2 & 0x0f) << 2)
                | ((b3 & 0xc0) >>> 6)]);
          sb.append(base64EncodeChars[b3 & 0x3f]);
       }
       return sb.toString();
    }


    我就很想知道data[i++]后面的&0xFF到底是什么意思,就开始百度。


    举个简单的例子:

    byte[]  b = new byte[5];

    b[0] = -12;

    byte   8位二进制   =   1个字节    char   2个字节   short (2个字节)    int(4个字节) long(8个字节) float  (4个字节) double(8个字节)

    计算机存储数据机制:正数存储的二进制原码,负数存储的是二进制的补码。  补码是负数的绝对值反码加1。

    比如-12,-12 的绝对值原码是:0000 1100  取反: 1111 0011  加1:  1111 0100

    byte --> int   就是由8位变 32 位 高24位全部补1: 1111 1111 1111 1111 1111 1111 1111 0100 ;

    0xFF 是计算机十六进制的表示: 0x就是代表十六进制,A B C D E F  分别代表10 11 12 13 14 15   F就是15  一个F 代表4位二进制:可以看做 是   8  4  2  1。

    0xFF的二进制表示就是:1111 1111。   高24位补0:0000 0000 0000 0000 0000 0000 1111 1111;

    -12的补码与0xFF 进行与(&)操作  最后就是0000 0000 0000 0000 0000 0000 1111 0100 

    转换为十进制就是 244。

    byte类型的数字要&0xff再赋值给int类型,其本质原因就是想保持二进制补码的一致性。

    当byte要转化为int的时候,高的24位必然会补1,这样,其二进制补码其实已经不一致了,&0xff可以将高的24位置为0,低8位保持原样。这样做的目的就是为了保证二进制数据的一致性。

    有人问为什么上面的式子中b[0]不是8位而是32位,因为当系统检测到byte可能会转化成int或者说byte与int类型进行运算的时候,就会将byte的内存空间高位补1(也就是按符号位补位)扩充到32位,再参与运算。

    谢谢这个大哥的博客,看了他的博客才明白。参考地址:点击打开链接


    展开全文
  • 代码中加密的时候 用到bytes[i] &... 0xFF MessageDigest md5 = MessageDigest.getInstance("MD5"); bytes = md5.digest(basestring.toString().getBytes("UTF-8")); 。。。。。。。。。 String hex = Integer...

    代码中加密的时候 用到bytes[i] & 0xFF

      MessageDigest md5 = MessageDigest.getInstance("MD5");

                bytes = md5.digest(basestring.toString().getBytes("UTF-8"));

       。。。。。。。。。

       String hex = Integer.toHexString(bytes[i] & 0xFF);

    首先你得清楚几个个概念 

        1.byte的取值范围

            byte java 中一个字节 8位 即 -2^7—2^7-1  范围是 -128——127 (*对这个有疑问吗?在2 中解答)

         2.计算机中负数的存储的值是它的补码

           补码计算方法  负数取值是它的绝对值,的二进制数,取反,加1,那么对于          -128——-1的存储 就知道了吧

                    举个例子 -12   绝对值------> 12  就是   0000  1100  取反------> 1111 0011 加 1  1111 0100 (晓得不)

            那么-128——127  就可以理解了

              -128  是    绝对值 128  二进制-------->  1000 0000   取反  0111 1111(127)  加1  ,1000 0000 (128)

              -1 的绝对值 是  1   0000 0001  取反  1111 1110 加1   1111 1111 (255) 

             计算机 中   -128——-1 对应存储的是   128-255  

              再看 2^7-1  也就是127 刚好 是0111 1111  为啥减1  因为 128 已经被占了 所以  

           -128——127  在数据库中真实存的是   128——255  外加  0——127   也就是 byte真正在计算机中存储范围是 

                  0——255 只不过我们说的是它的取值范围  是 -128——127

         3.byte 转 int 16进制 (int  -2^31——2^31-1)

          bytes[i] & 0xFF

                  byte和int运算,计算机会自动将 byte转化为32位,然后再运算,也就是8位转32位,那么计算机会自动将高位补1

                  所以-12 在计算机种就是    1111 0011--------> 1111 1111 1111 1111 1111 1111 1111 0100

        然后 &  0xFF     

                 0x 代表16进制   每一位取值范围是  0 —— 15 

                  但是 10——15之间是两位数字了,会和10进制分部开 所以 10——15就对应了 A——F

                 那么0xFF 就是   0000 0000 0000 0000 0000 0000 1111 1111 

                 &运算  得到 0000 0000 0000 0000  0000 0000  1111 0100

    有没有发现什么?低八位  1111 0011  没有改变 ,那么为什么  &  0xFF而不是别的呢?

      原因就是 byte 转int 前24位都被计算机强制 变成了1,    1111 1111 1111 1111 1111 1111 1111 0100 转化成int已经不是

    -12在计算机中存储的值了,&  0xFF   0000 0000 0000 0000 0000 0000 1111 1111 恰好前24位都是 0,进行&运算,只会保留

    低八位,也就是byte中原来在计算机中存储的值  1111 0100。

    展开全文
  • iOS经常需要用到数据类型的转换,下面列举一下常用类型的转换。 1.NSDictionary类型转换为NSData类型: [cpp] view plaincopy //NSDictionary -> NSData:  NSDictionary *params...
  • #pragma mark - 十六进制转换工具 // 16进制NSData - (NSData *)convertHexStrToData:(NSString *)str { if (!str || [str length] == 0) { return nil; } NSMutableData *hexData = [[NSMutableDa...
  • iOS 大小端转换代码

    2015-09-09 16:32:14
    大小端转换代码 void convertToLittleEndian(unsigned int *data, int len) { for (int index = 0; index ;... *data = ((*data & 0xff000000) >> 24) | ((*data & 0x00ff0000) >> 8) | ((*data
  • 背景因为我的公司需要设计到app与硬件的通信,所以去年深入的研究了一下音频各种格式的转换,曾写过一篇简书(https://www.jianshu.com/p/2937ab95c0f2),现在搬过来丰富下自己的blog。首先介绍一下常用的音频文件...
  • 比如说数学8,我要怎么来理解1个16进制byte呢?是先将数字8成byte!然后拿一位吗? 还有iOS怎么将多个byte拼接起起来、还有iOS开发的有对esp-touch了解吗?
  • iOS中16进制nsdata

    2016-09-27 11:50:25
    //data转16 +(NSString *)DataToHexStr:(NSData *)data {  if (!data || [data length] == 0) {  return @"";  }  NSMutableString *string = [[NSMutableString alloc] initWithCapacity:[d
  • 其中将十六进制字符串转换成NSData的代码如下: - (NSData *)convertHexStrToData:(NSString *)str { if (!str || [str length] == 0) { ... NSMutableData *hexData = [[NSMutableData alloc] ini...
  • #pragma mark - NSDatalong long - (long long) NSDataToUInt:(NSData *)data { long long datatemplength; [data getBytes:&datatemplength length:sizeof(datatemplength)]; long long result = CFSwapI
  • 1、问题:在html5中利用canvas对上传图片压缩的时候,ios手机竖着拍照时,图片会旋转90°,其他情况正常。 2、解决方法:获取拍照角度,对Ios竖着拍的照片进行角度处理 3、利用exif.js获取到照片的... 1 0°  3 
  • NSString *test = [NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];2.NSString->NSData NSString *test = @“test”; NSData *data = [test dataUsingEncoding:NSUTF8String
  • UIButton设置背景图片时,是需要一张图片才可以。但是我又想直接通过UIColor来设置,那怎么办? 有个方法是可以将UIColor转化成UIImage对象,可以画出图片,不用让美工MM去设计一张图片,省时间,实际项目还是做...
  • iOS9以上 PHAsset *asset; [[asset valueForKey:@"filename"] containsString:@"GIF"] 这些类型只能通过 Asset中的 获取资源图片的详细资源信息 ios 4-9 ALAssetRepresentation *representation = [asset ...
  • /** * 时间转换部分 * //从1970年开始到现在经过了多少秒 -(NSString *)getTimeSp { NSString *time; NSDate *fromdate=[NSDate date]; time = [NSString stringWithFormat:@"%f",[fromdate ...
  • vue之图片上传解决图片压缩和拍摄的角度旋转的问题 参考Exif.js 提供了 JavaScript 读取图像的原始数据的功能扩展,例如:拍照方向、相机设备型号、拍摄时间、ISO 感光度、GPS 地理位置等数据。...
1 2 3 4 5 ... 20
收藏数 2,257
精华内容 902
关键字:

0xff转data ios