碰到的场景:因为使用iframe子窗口打开,多张的二维码图片创建方法调用,导致页面打开缓慢,

所以将调取方式转换成<img src="data:image/png;base64,@item.ShareMaterialLink" width="146" height="146">

原先的话是<img src="方法调取地址加上参数(需要转成二进制的字符串)" width="146" height="146">

下面说的二维码转换的dll

http://files.cnblogs.com/files/danlis/ThoughtWorks.QRCode.zip

//需要调用的命名空间
using System.IO;
using System.Drawing; //方法里面:
Image img = QRCodeUtil.CreateImgCode(tempModel[i].ActivityLink);
MemoryStream ms = new MemoryStream();//创建支持存储区为内存的流
img.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);//将图像以指定的格式保存到指定的流中
byte[] bytes = ms.GetBuffer();//转成无符号的字节数组
tempModel[i].ShareMaterialLink = Convert.ToBase64String(bytes);//将8位无符号字节数组转换成Base64数字编码的等效字符串
ms.Close();//使用了内存区,需要关闭的
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using ThoughtWorks.QRCode.Codec;//这个是个插件,网上搜应该都是可以的 namespace Utility
{
//这个方法就是上面转换image对象的方法
public class QRCodeUtil
{
/// <summary>
/// 生成二维码图片
/// </summary>
/// <param name="codeNumber">要生成二维码的字符串</param>
/// <param name="size">大小尺寸</param>
/// <returns>二维码图片</returns>
public static Image CreateImgCode(string codeNumber)
{
if (string.IsNullOrEmpty(codeNumber))
{
codeNumber = "";
}
//创建二维码生成类
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
//设置编码模式
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
//设置编码测量度
qrCodeEncoder.QRCodeScale = ;
//设置编码版本
qrCodeEncoder.QRCodeVersion = ;
//设置编码错误纠正
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
//生成二维码图片
System.Drawing.Image image = qrCodeEncoder.Encode(codeNumber);
return image;
}
}
}

将image对象转换为byte64数据流

Image img = QRCodeUtil.CreateImgCode(item.ActivityLink);
MemoryStream ms = new MemoryStream();
img.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
byte[] bytes = ms.GetBuffer();
item.ActivityLink = Convert.ToBase64String(bytes);
ms.Close();
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using ThoughtWorks.QRCode.Codec;
using System.IO; namespace Qxun.Framework.Utility
{
public class QRCodeUtil
{
/// <summary>
/// 生成二维码图片
/// </summary>
/// <param name="codeNumber">要生成二维码的字符串</param>
/// <param name="size">大小尺寸</param>
/// <returns>二维码图片</returns>
public static Image CreateImgCode(string codeNumber)
{
if (string.IsNullOrEmpty(codeNumber))
{
codeNumber = "";
}
//创建二维码生成类
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
//设置编码模式
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
//设置编码测量度
qrCodeEncoder.QRCodeScale = ;
//设置编码版本
qrCodeEncoder.QRCodeVersion = ;
//设置编码错误纠正
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
//生成二维码图片
System.Drawing.Image image = qrCodeEncoder.Encode(codeNumber);
return image;
} public static string CreateImageCodeByte64(string codeNumber)
{
Image image = CreateImgCode(codeNumber);
return GetImageByte64Str(image);
} /// <summary>
/// 根据图片Image类型对象,获取Byte64位字符串
/// </summary>
/// <param name="image"></param>
/// <returns></returns>
public static string GetImageByte64Str(Image image)
{
return Convert.ToBase64String(GetImagebyteArray(image));
} /// <summary>
/// 根据图片Image类型对象,获取byte[]数据流
/// </summary>
/// <param name="image"></param>
/// <returns></returns>
public static byte[] GetImagebyteArray(Image image)
{
MemoryStream ms = new MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
byte[] bytes = ms.GetBuffer();
ms.Close();
return bytes;
}
}
} //<img src="data:image/png;base64,@QRCodeUtil.CreateImageCodeByte64("http://ttyouni.com")" width="300" height="300" alt="" />

根据字符串创建二维码显示相关方法

img-图片二进制流 64位前端显示的更多相关文章

  1. 用NOPI将图片二进制流导出到Excel

    这儿采取的是将图片的二进制流导出到Excel,直接上代码: /// <summary> /// DataTable导出到Excel的MemoryStream /// </summar ...

  2. win7硬盘安装Ubuntu12.04 64位时显示Error 15: File not found.

    安装Ubuntu12.04 -64位时,用EasyBCD建好引导文件重启电脑后出现如下错误: Error 15: File not found 原因一个是安装文件所在盘符不对,另一个是文件名.Ubun ...

  3. 前端将图片二进制流显示在html端

    工作中碰到的问题,在处理接口返回的验证码图片时,由于返回的是encode编码代码,在js端获取到数据之后,通过函数encodeURI()来进行解码,之后可以通过在src中设置来实现图片显示:

  4. php canvas 前端JS压缩,获取图片二进制流数据并上传

    <?php if(isset($_GET['upload']) && $_GET['upload'] == 'img'){ //二进制数据流 $data = file_get_c ...

  5. JS将图片文件转为64位字符串再post到接口上传图片

    HTML: <div class="ai-item upload-id-img"> <p>上传身份证照片</p> <div class=& ...

  6. java处理金证中登查询图片二进制流问题

    package com.szkingdom.kess.model; import java.io.File; import java.io.FileOutputStream; import java. ...

  7. .net WebApi 批量文件进行压缩zip以二进制流传输至前端(Vue)下载

    前言:最近接了个项目,需要进行将服务端生成的文件进行打包压缩供前端下载,百度查了下资料,决定采用SharpZipLib C#开园的压缩解压库进行服务器文件压缩,在实现过程,郁闷的是前端接收下载下来的压 ...

  8. 如何查看 Linux是32位还是64位?

    方法一:执行命令 file /sbin/init [root@localhost jianbao]# file /sbin/init /sbin/init: ELF 32-bit LSB shared ...

  9. 如何查看linux系统是32位还是64位

    1.#uname -a 如果有x86_64就是64位的,没有就是32位的 这是64位的  # uname -a  Linux desktop 2.6.35-23-generic #37-Ubuntu ...

随机推荐

  1. 为gridview的每个单元格添加鼠标悬停提示文本(tooltip)

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)    {        for (int i ...

  2. 【WPF】XAML引入资源和在C#代码中动态添加样式

    转载自: http://blog.csdn.net/honantic/article/details/48781543 XAML引入资源参考这里: http://blog.csdn.net/qq_18 ...

  3. 更新Python以及随后的nose,easy_install,pip,numpy,scipy和theano

    这里报错:ImportError: No module named models.dnn. 应该是PDNN的目录没有加入到PYTHONPATH当中,因而执行下一句: export PYTHONPATH ...

  4. 存储过程中得到新增数据的ID

    数据库中有自增字段UID 存储过程如下: CREATE     PROCEDURE   AddUser   (   @Username           nvarchar(50),   @Email ...

  5. ubuntu下man帮助文档不全怎么办?如何解决?

    真心后悔用ubuntu学习linux 发现很多东西不全,kate没有,vi版本低,帮助文档不全一系列的问题.ubuntu下man帮助文档不全怎么办?如何解决?不用担心,下边小编就为大家带来最详细的解决 ...

  6. linux下tree命令详解

    linux下tree命令详解linux下的tree就比较强大了,但一般系统并不自带这个命令,需要手动下载安装:sudo apt-get install tree .文件很小,只有31K,但功能可强大了 ...

  7. maven_nexus3私服搭建

    [maven_nexus3私服搭建] # 00.安装环境说明# (1)Windows7 64位# (2)JDK1.8 64位# (3)Sonatype Nexus Repository OSS 3.1 ...

  8. 创建一个简单的 MDM server(1)

    前提:已获得 APNS 证书 ,已完毕 MDM 配置描写叙述文件的制作.请參考< MDM 证书申请流程 >一文和<配置MDM Provisioning Profile>. 环境 ...

  9. kbengine + cocos2d-js-demo理解

    KBEngine 是国内开源的游戏服务器引擎,据说参考了 Bigworld 的架构:网上能找到的开源游戏服务器引擎很少,网易的 Pomelo 是用 Node.js 来实现的,现在还是觉得 C/C++ ...

  10. SQL SERVER 2005快捷键

    一.SQL SERVER 2005快捷键 快捷键 功能 CTRL + SHIFT + B生成解决方案 CTRL + F7 生成编译 CTRL + O 打开文件 CTRL + SHIFT + O打开项目 ...