base64图片编码解码后得到的图片大小较原图小

用base64将图片转化成编码后再还原,结果图片变小了,转换前后图片格式相同,并且这两张图用base64编码后得到的编码相同

0

1个回答

你是怎么base64编码的,是不是先读取原始图片为一个字符串编码的,要直接对二进制字节数组编码

1
qq_25255553
qq_25255553 这是编码的那个代码,是不是有什么问题,新手接触没多久,不是很懂
2 年多之前 回复
qq_25255553
qq_25255553 System.IO.MemoryStream m = new System.IO.MemoryStream(); System.Drawing.Bitmap bp = new System.Drawing.Bitmap(@“c:\demo.GIF”); bp.Save(m, System.Drawing.Imaging.ImageFormat.Gif); byte[]b= m.GetBuffer(); string base64string=Convert.ToBase64String(b);
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
IOS图片BASE64编码解码
IOS图片BASE64编码解码 自己写的实例
二维码生成 图片Base64编码解码
1.Java生成二维码示例 2.图片保存到本地或生成Base64编码 3.Base64编码生成图片
base64编码解码图片问题
[code=php] $aaaa=base64_encode(file_get_contents('http://t10.baidu.com/it/u=3419096712,54017040&fm=55&s=6A00F50B4AEB0298352025A50300A022&w=121&h=81&img.JPEG'));rn file_put_contents('./Uploads/jquery.jpg', file_get_contents(base64_decode($aaaa)));[/code]rnrn为什么没写入文件。。
Base64 对图片编码解码的工具类
用 Base64 将图片编码解码,并提供转换成Bitmap的工具类 package com.cachecats.oldbook.utils; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.util.Base64; import java.io.ByteArrayOutp...
base64 编码解码
base64 BASE64 编码 解码 内含使用例子
BASE64编码解码
#include "stdafx.h" #include  <string.h>  const   unsigned char  _Base64Map[] = {       'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P'     ,'Q','R','S','T','U','V','W','X','Y','...
base64编码解码
在使用json传输图片时,需要做格式转换。 图片是以二进制的数据形式存储在数据库,如果直接用json包装二进制数据时,会报错。 所以需要将二进制数据使用base64编码后再进行json传输。 个人理解base64是作为一种在现有编码的基础上再次进行加密的编码。 Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。 编码 b64encode 解码 b64decode ...
Base64编码解码
Base64标准编码解码,在VC6.0和Linux上调试通过
base64的编码解码
用Java实现base64编码和解码 package base64; public class translate { public int a=0; public char[] list; public translate(){ list=new char[64]; int i; char c='A'; for(i=0;i<26;i++){ list[i]=c; c++; } c='a'; for(i=0;i<26;i++){ list[i+26]=c; c++; } c='0'; for(i=0;i<10;i++){ list[i+52]=c; c++; } list[62]='+'; list[63]='/'; }
Base64 编码解码
Base64 编码解码企业级加密算法的应用 1)加密:利用特定的密钥,对数据进行特定算法的处理,形成处理之后的内容,这个内容只有使用与特定密钥相关的内筒才可以还原原始数据,将这个流程称作加密流程。2)解码:加密逆向的操作3)编码:利用特定的算法,对原始的内容进行处理,生成运算之后的内容,形成另一种数据的表现形式,可以根据算法再还原回来,这种操作称做编码;编码不是加密 可以运算回来的1)Hex:b
base64 - 编码解码
基于:openssl-1.0.1g int openssl_base64_encode(const uint8_t *in, uint32_t in_len, uint8_t *out, uint32_t *out_len) { int ret = 0; BIO * bmem = NULL; BIO * b64 = NULL; BUF_MEM * bpt
base64编码解码
base64编码 1 /** 2 * 3 * @Title: encodeBase64 4 * @Description: 对数据进行base64编码 5 * @param value 需要编码的数据 6 * @param encodeType 需要编码的类型,如UTF-8,gb2312等 7 ...
BASE64 编码解码
里面演示了如何 用BASE64来编码和解码
(技巧提示)Base64编码解码[base64]
/** a standard Base64 encoder/decoder.rn * @author S.Weeden,N.J.Ferrier rn*/rnpublic class Base64rnrn /** decode a Base 64 encoded String.rn * String to byte conversionrn * This method uses a naive String to byte interpretation, it simply gets eachrn * char of the String and calls it a byte. rn * Since we should be dealing with Base64 encoded Strings that is a reasonablern * assumption.rn * End of datarn * We don't try to stop the converion when we find the "=" end of data padding char.rn * We simply add zero bytes to the unencode buffer. rn */rn public static String decode(String encoded)rn rn StringBuffer sb=new StringBuffer();rn int maxturns;rn //work out how long to loop for.rn if(encoded.length()%3==0)rn maxturns=encoded.length();rn elsern maxturns=encoded.length()+(3-(encoded.length()%3));rn //tells us whether to include the char in the unencodern boolean skip;rn //the unencode bufferrn byte[] unenc=new byte[4];rn byte b;rn for(int i=0,j=0; i=65 && b<91)rn unenc[j]=(byte)(b-65);rn else if(b>=97 && b<123)rn unenc[j]=(byte)(b-71);rn else if(b>=48 && b<58)rn unenc[j]=(byte)(b+4);rn else if(b=='+')rn unenc[j]=62;rn else if(b=='/')rn unenc[j]=63;rn //if we find "=" then data has finished, we're not really dealing with this nowrn else if(b=='=')rn unenc[j]=0;rn elsern rn char c=(char)b;rn if(c=='\n' || c=='\r' || c==' ' || c=='\t')rn skip=true;rn elsern //could throw an exception here? it's input we don't understand.rn ;rn rn //once the array has boiled convert the bytes back into charsrn if(!skip && ++j==4)rn rn //shift the 6 bit bytes into a single 4 octet wordrn int res=(unenc[0] << 18)+(unenc[1] << 12)+(unenc[2] << 6)+unenc[3];rn byte c;rn int k=16;rn //shift each octet down to read it as char and add to StringBufferrn while(k>=0)rn rn c=(byte)(res >> k);rn if ( c > 0 )rn sb.append((char)c);rn k-=8;rn rn //reset j and the unencode bufferrn j=0;rn unenc[0]=0;unenc[1]=0;unenc[2]=0;unenc[3]=0;rn rn rn return sb.toString();rn rn rn /** encode plaintext data to a base 64 stringrn * @param plain the text to convert. If plain is longer than 76 characters this methodrn * returns null (see RFC2045).rn * @return the encoded text (or null if string was longer than 76 chars).rn */rn public static String encode(String plain)rn rn if(plain.length()>76)rn return null;rn int maxturns;rn StringBuffer sb=new StringBuffer();rn //the encode bufferrn byte[] enc=new byte[3];rn boolean end=false;rn for(int i=0,j=0; !end; i++)rn rn char _ch=plain.charAt(i);rn if(i==plain.length()-1)rn end=true;rn enc[j++]=(byte)plain.charAt(i);rn if(j==3 || end)rn rn int res;rn //this is a bit inefficient at the end pointrn //worth it for the small decrease in code size?rn res=(enc[0] << 16)+(enc[1] << 8)+enc[2];rn int b;rn int lowestbit=18-(j*6);rn for(int toshift=18; toshift>=lowestbit; toshift-=6)rn rn b=res >>> toshift;rn b&=63;rn if(b>=0 && b<26)rn sb.append((char)(b+65));rn if(b>=26 && b<52)rn sb.append((char)(b+71));rn if(b>=52 && b<62)rn sb.append((char)(b-4));rn if(b==62)rn sb.append('+');rn if(b==63)rn sb.append('/');rn if(sb.length()%76==0)rn sb.append('\n');rn rn //now set the end chars to be pad character if there rn //was less than integral input (ie: less than 24 bits)rn if(end)rn rn if(j==1)rn sb.append("==");rn if(j==2)rn sb.append('=');rn rn enc[0]=0; enc[1]=0; enc[2]=0;rn j=0;rn rn rn return sb.toString();rn rnrnrn/* rnThe RC2045 conversion chart,rn 0 A 17 R 34 i 51 zrn 1 B 18 S 35 j 52 0rn 2 C 19 T 36 k 53 1rn 3 D 20 U 37 l 54 2rn 4 E 21 V 38 m 55 3rn 5 F 22 W 39 n 56 4rn 6 G 23 X 40 o 57 5rn 7 H 24 Y 41 p 58 6rn 8 I 25 Z 42 q 59 7rn 9 J 26 a 43 r 60 8rn 10 K 27 b 44 s 61 9rn 11 L 28 c 45 t 62 +rn 12 M 29 d 46 u 63 /rn 13 N 30 e 47 vrn 14 O 31 f 48 w (pad) =rn 15 P 32 g 49 xrn 16 Q 33 h 50 yrnrnrnASCII chartrnrnDec Hex Char Dec Hex Char Dec Hex Char Dec Hex Charrn ----------- ------------ ------------ ------------rn 0 0 NUL 32 20 64 40 @ 96 60 `rn 1 1 SOH 33 21 ! 65 41 A 97 61 a rn 2 2 STX 34 22 " 66 42 B 98 62 b rn 3 3 ETX 35 23 # 67 43 C 99 63 c rn 4 4 EOT 36 24 $ 68 44 D 100 64 d rn 5 5 ENQ 37 25 % 69 45 E 101 65 e rn 6 6 ACK 38 26 & 70 46 F 102 66 f rn 7 7 BEL 39 27 ' 71 47 G 103 67 g rn 8 8 BS 40 28 ( 72 48 H 104 68 h rn 9 9 TAB 41 29 ) 73 49 I 105 69 i rn 10 A LF 42 2A * 74 4A J 106 6A j rn 11 B VT 43 2B + 75 4B K 107 6B k rn 12 C FF 44 2C , 76 4C L 108 6C l rn 13 D CR 45 2D - 77 4D M 109 6D m rn 14 E SO 46 2E . 78 4E N 110 6E n rn 15 F SI 47 2F / 79 4F O 111 6F o rn 16 10 DLE 48 30 0 80 50 P 112 70 p rn 17 11 DC1 49 31 1 81 51 Q 113 71 q rn 18 12 DC2 50 32 2 82 52 R 114 72 r rn 19 13 DC3 51 33 3 83 53 S 115 73 s rn 20 14 DC4 52 34 4 84 54 T 116 74 t rn 21 15 NAK 53 35 5 85 55 U 117 75 u rn 22 16 SYN 54 36 6 86 56 V 118 76 v rn 23 17 ETB 55 37 7 87 57 W 119 77 w rn 24 18 CAN 56 38 8 88 58 X 120 78 x rn 25 19 EM 57 39 9 89 59 Y 121 79 y rn 26 1A SUB 58 3A : 90 5A Z 122 7A z rn 27 1B ESC 59 3B ; 91 5B [ 123 7B rn 28 1C FS 60 3C < 92 5C \ 124 7C | rn 29 1D GS 61 3D = 93 5D ] 125 7D rn 30 1E RS 62 3E > 94 5E ^ 126 7E ~ rn 31 1F US 63 3F ? 95 5F _ 127 7F DELrn*/rn
得到图片的BASE64编码
网上到处传流传着这样的一个帖子,不过有点看不懂,所以还想请教一下高手rn[url=http://dev.csdn.net/Develop/article/28/70106.shtm][/url]rnrn在xml中图片是BASE64编码存储的,不过请问这下面这句(在原帖子是以红色标示的)是什么意思?rn rn是不是$command.portraitBASE64就能得到图片的BASE64编码,不过我试验了却不能,这句就连图片的地址都没包含,怎么可能能转换成BASE64编码啊,想不通,请大家帮忙想一下,谢谢!
C#和JAVA利用BASE64实现图片编码解码
主要针对服务器端和客户端利用BASE64对图片和字符串进行编码解码操作。 客户端是Android,服务器端是webservice,编码解码方式如下: 一、Android 实现图片上传 1.java对图片进行编码 Bitmap image = extras.getParcelable("data"); if (image != null) { try { ByteArrayOutputS
java8 文件图片转base64 编码解码
base64 编码解码工具类  import sun.misc.BASE64Encoder; import java.io.*; import java.nio.file.Files; import java.nio.file.Paths; import java.nio.file.StandardOpenOption; import java.util.Base64; public cl...
Base64编码解码工具
C++写的非常好用的Base64编码、解码工具!
base64的js实现
写了一个js类,可以方便base64加密解密:  Javascript代码   /**  *  *  Base64 encode / decode  *  *  @author haitao.tu  *  @date   2010-04-26  *  @email  tuhaitao@foxmail.com  *  */       function
java中BASE64的编码解码
有三种方法: 早期的jdk方法(效率太低) Apache(需要引用Apache Commons Codec) jdk8 以上方法中,jdk8是效率最好,也是最方便的,写法如下:   final Base64.Decoder decoder = Base64.getDecoder();   final Base64.Encoder encoder = Base64.getEncoder(...
java:Base64编码解码方式
1.使用jdk自带包解码编码: package com.cl; import java.io.IOException; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public class JdkBase64 { private static String src=&quot;imooc security base...
base64编码解码易语言
易语言base64编码解码开源易语言base64编码解码开源易语言base64编码解码开源易语言base64编码解码开源易语言base64编码解码开源
java实现Base64编码解码
import java.io.UnsupportedEncodingException; import java.lang.reflect.Method; import org.apache.commons.codec.binary.Base64; public class Base64Utils { //方法二 /** * base64编码 * @param bstr
文本Base64编码解码工具
一个早些年写的Base64的工具,可以对文本进行编码解码,功能简单到只有这个功能。
Base64 编码解码问题~~
rt,我在写收发邮件程序的时候,能正确地收到邮件的经过base64编码之后的文本,但是除了文本内容我会解码,其他的就都不知道该怎么解码了rnrn就是说我收到的邮件里面包含有附件的base64编码,而我不知道该怎么对它解码,也不知道该怎么保存附件,敬请高手指教
PHP+JS Base64和URI编码解码
NULL 博文链接:https://onestopweb.iteye.com/blog/2379876
base64编码解码模块[vb]
base64编码解码模块[vb]!!!!!!!!!!!!!
Base64 编码解码Python实现
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。 编码的过程: 将源数据三个字节三个字节分开,分别处理 3个字节是24Bit,平均分成4份,每一份6Bit,每一份前面补两位0,形成新的4个字节。不够4个,用零补齐,最后将无效的字节替换成b'='号 每一个新字节,对照Base64编码表,组成新的数据 bytes...
C++ Base64编码解码 DLL
Base64.dll 适用VC的BASE64 编码解码
base64编码解码工具源码
此工具可以实现base64的编码和解码。 带界面。
BASE64 编码解码 C代码
base64的编码 和 解码 c源代码, vc6.0编译通过,可直接移植到嵌入式系统
C++关于base64编码解码
C++代码编写base64编码及解码,有base64.h及base64.cpp两个文件,下载即可以使用。
BASE64编码解码查询器
BASE64编码解码转换查询。自己写的小工具!
base64编码解码.e
base64编码解码源码、模块,可以用易语言5.11以上版本直接编译使用
相关热词 c#异步发送kafka c#窗体编号 c# 操作二进制文件 c# 反射 机制 c#线程 窗体失去响应 c#角度转弧度 c# 解析gps数据 c# vs设置 语法版本 c# json含回车 c#多线程demo