使用WinForm实现了图片base64编码解码的

效果图:

示例base 64编码字符串:

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

代码如下:

/* by 何问起
hovertree.com*/
using System;
using System.Drawing;
using System.IO;
using System.Windows.Forms; namespace HoverTree.Forms
{
public partial class FormBase64 : Form
{
public FormBase64()
{
InitializeComponent();
} private void button_decode_Click(object sender, EventArgs e)
{
try
{
pictureBox_hovertree.Image = ConvertStringToBitmap(textBox_hovertree.Text);
}
catch (Exception ex)
{ MessageBox.Show("解码失败。" + ex.Message,"HoverTree项目"); }
} Bitmap ConvertStringToBitmap(string base64string)
{
byte[] bt = Convert.FromBase64String(base64string);
MemoryStream h_stream = new MemoryStream(bt);
Bitmap h_bitmap = new Bitmap(h_stream); return h_bitmap;
} string ConvertBitmapToString(Bitmap bitmap)
{
MemoryStream h_m = new MemoryStream();
bitmap.Save(h_m, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] h_b = h_m.GetBuffer();
string base64string = Convert.ToBase64String(h_b); return base64string;
} private void button_open_Click(object sender, EventArgs e)
{
if (openFileDialog_hovertree.ShowDialog() == DialogResult.OK)
{
try
{
pictureBox_hovertree.Image = Image.FromFile(openFileDialog_hovertree.FileName);
}
catch (Exception ex)
{
MessageBox.Show("请选择图片文件。" + ex.Message);
}
}
} private void button_encode_Click(object sender, EventArgs e)
{
try
{
textBox_hovertree.Text = ConvertBitmapToString(new Bitmap(pictureBox_hovertree.Image));
}
catch (Exception ex)
{
MessageBox.Show("解码失败。" + ex.Message,"hovertree.com");
}
} private void button_zishu_Click(object sender, EventArgs e)
{
int h_length = textBox_hovertree.Text.Length;
int h_yushu = h_length % ;
MessageBox.Show("长度:"+h_length.ToString()+",除以4余数为"+h_yushu.ToString()+(h_yushu==?"": ",为非法base64编码"),"何问起");
}
}
}

转自:http://hovertree.com/h/bjaf/wa5nbd3w.htm

参考:http://hovertree.com/h/bjaf/mdklgyjr.htm

更多:http://www.cnblogs.com/sosoft/p/csccgc.html

C# base 64图片编码解码的更多相关文章

  1. opencv python图片编码解码

    cv2.imdecode()函数从指定的内存缓存中读取数据,并把数据转换(解码)成图像格式;主要用于从网络传输数据中恢复出图像.cv2.imencode()函数是将图片格式转换(编码)成流数据,赋值到 ...

  2. Base 64 编码

    原创地址:http://www.cnblogs.com/jfzhu/p/4020097.html 转载请注明出处 (一)Encoding VS. Encryption 很多人都以为编码(Encodin ...

  3. 浅谈 Data URI 与 BASE 64 编码

    前言(废话):鼓捣 Stylish 的时候发现了这么个奇怪的代码行: Data:image/gif;BASE64,R0lGODlhEAAQAKEAAEKF9NPi/AAAAAAAACH5BAEAAAI ...

  4. 快速掌握 Base 64 | 学 Java 密码系列

    Java 密码系列 - Java 和 JS Base 64 Base 64 不属于密码技术,仅是编码方式.但由于在 Java.JavaScript.区块链等出现的频率较高,故在本系列文章中首先分享 B ...

  5. base64 图片编码之再优化

    首先进入网站: http://b64.io/ 最多可减少图片体积容量近70%,建议不要优化base 64 图片格式为gif , 已实测如果用gif的话会增加容量.

  6. C# 图片和64位编码的转换

    /* 将图片转换为64位编码 */ //找到文件夹 System.IO.DirectoryInfo dd = new System.IO.DirectoryInfo("C://qq" ...

  7. 图片base64编码解码

    1.图片base64编码 https://c.runoob.com/front-end/59 2.图片base64解码 https://www.it399.com/image/base64 https ...

  8. base 64 编解码器

    base 64 编解码 1. base64的编码都是按字符串长度,以每3个8bit的字符为一组, 2. 然后针对每组.首先获取每一个字符的ASCII编码. 3. 然后将ASCII编码转换成8bit的二 ...

  9. python 对任意文件(jpg,png,mp3,mp4)base64的编码解码

    程序是事件驱动的,写博客是什么驱动的?事件? 时间?no,我承认我很懒,甚至不愿意记录总结.哪是什么驱动的? 对! 问题驱动的.遇到了问题解决了问题突然想起来搬到blog上,让遇到相同问题的可以参考下 ...

随机推荐

  1. 从Vue.js窥探前端行业

    近年来前端开发趋势 1.旧浏览器逐渐淘汰,移动端需求增加: 旧浏览器主要指的是IE6-IE8,它是不支持ES5特性的:IE9+.chrome.sarafi.firefox对ES5是完全支持的,移动端大 ...

  2. ASP.NET中常用的优化性能的方法

    1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接池( ...

  3. openresty 前端开发入门四之Redis篇

    这章主要演示怎么通过lua连接redis,并根据用户输入的key从redis获取value,并返回给用户 操作redis主要用到了lua-resty-redis库,代码可以在github上找得到 而且 ...

  4. 屌丝giser成长记-大学篇

    作为一名屌丝giser的我,刚接触gis专业是2007年的大一,好悲催,当时gis这个专业是被调剂的,我压根都不知道gis为何物,那时候gis冷门的一逼,报名这个专业的寥寥无几.记得那时候得知被调剂到 ...

  5. Atitit.研发管理如何避免公司破产倒闭的业务魔咒

    Atitit.如何避免公司破产倒闭的业务魔咒 1. 大型公司的衰落或者倒闭破产案例1 1.1. 摩托罗拉1 1.2. 诺基亚2 1.3. sun2 2. 为什么他们会倒闭?? 常见的一些倒闭元素2 2 ...

  6. java中的内部类总结

    内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类 如同一个人是由大脑.肢体.器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液.跳动) 显然, ...

  7. Oracle 列数据聚合方法汇总

    网上流传众多列数据聚合方法,现将各方法整理汇总,以做备忘. wm_concat 该方法来自wmsys下的wm_concat函数,属于Oracle内部函数,返回值类型varchar2,最大字符数4000 ...

  8. SQLServer如何添加try catch

    在.net中我们经常用到try catch.不过在sqlserver中我们也可以使用try catch捕捉错误,在这里把语法记录下来和大家分享一下, --构建存储过程CREATE PROCEDURE ...

  9. kafka

    2016-11-13  20:48:43 简单说明什么是kafka? Apache kafka是消息中间件的一种,我发现很多人不知道消息中间件是什么,在开始学习之前,我这边就先简单的解释一下什么是消息 ...

  10. 第10章 Shell编程(4)_流程控制

    5. 流程控制 5.1 if语句 (1)格式: 格式1 格式2 多分支if if [ 条件判断式 ];then #程序 else #程序 fi if [ 条件判断式 ] then #程序 else # ...