图片转成二进制并且压缩字符串

今天工作需要写了一个把图片转成字符串,并且压缩的小功能,其中用到了多线程去转换字符串,感觉写的还是不错的,拿出来分享一下

 1  /// <summary>
 2         /// 创建多核任务
 3         /// </summary>
 4         /// <param name="bytimages"></param>
 5         /// <param name="count">创建几个核</param>
 6         public string[] MoreTask(byte[] bytImages,int count)
 7         {
 8             string[] temps=new string[count];
 9             Task[] tasks = new Task[count];
10             int length = bytImages.Length;
11             for (int i = 0; i < count; i++)
12             {
13                 int a = i;
14                 tasks[a] = Task.Factory.StartNew(() => dosomething(out temps[a], (length / count) * a, (length / count) * (a + 1), bytImages));
15               //  tasks[i] = Task.Factory.StartNew(() => dosomething(out temps[i], (length / count) * i, (length / count) * (i + 1), bytImages));
16             }
17             Task.WaitAll(tasks);
18
19             return temps;
20         }

主要就是利用这个方法开启任意多个线程去处理转换任务。

然后分享一下字符串压缩的方法

using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Text;
using System.Web;

namespace testImage
{
    public class ZipHelper
    {
        public static string Compress(string str)
        {

            //因输入的字符串不是Base64所以转换为Base64,因为HTTP如果不传递Base64则会发生http 400错误

            return Convert.ToBase64String(Compress(Convert.FromBase64String(Convert.ToBase64String(Encoding.Default.GetBytes(str)))));

        }

        public static string Decompress(string str)
        {

            return Encoding.Default.GetString(Decompress(Convert.FromBase64String(str)));

        }

        public static byte[] Compress(byte[] bytes)
        {

            using (MemoryStream ms = new MemoryStream())
            {

                GZipStream Compress = new GZipStream(ms, CompressionMode.Compress);

                Compress.Write(bytes, 0, bytes.Length);

                Compress.Close();

                return ms.ToArray();

            }

        }

        public static byte[] Decompress(Byte[] bytes)
        {

            using (MemoryStream tempMs = new MemoryStream())
            {

                using (MemoryStream ms = new MemoryStream(bytes))
                {

                    GZipStream Decompress = new GZipStream(ms, CompressionMode.Decompress);

                    Decompress.CopyTo(tempMs);

                    Decompress.Close();

                    return tempMs.ToArray();

                }

            }

        }
    }
}

  主要代码就在这里了

图片转成二进制并且压缩字符串

时间: 2024-11-03 01:35:33

图片转成二进制并且压缩字符串的相关文章

减少HTTP请求之将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片(大型网站优化技术)

原文:减少HTTP请求之将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片(大型网站优化技术) 在网站开发过程中,对于页面的加载效率一般都想尽办法求快.那么,怎么让才能更快呢?减少页面请求 是一个优化页面加载速度很好的方法.上一篇博文我们讲解了 “利用将小图标合成一张背景图来减少HTTP请求”,那么,这一篇博文将讲解  “ 将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片”. 一.为何选择将图片转成二进制并生成Base64编码,可以在网页中通过url查看

C#将image中的显示的图片转换成二进制

原文:C#将image中的显示的图片转换成二进制 1.将Image图像文件存入到数据库中 我们知道数据库里的Image类型的数据是"二进制数据",因此必须将图像文件转换成字节数组才能存入数据库中. //将本地图片转换成二进制保存起来 private byte[] SetImageToByteArray(string fileName) { FileStream fs = null; try { fs = new FileStream(fileName, FileMode.Open, S

java将图片转换成二进制

package com.oumyye.图片; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import sun.misc.BASE64Decoder; impor

把图片转换成二进制--把二进制转换成图片

把图片转换成二进制--把二进制转换成图片 private void button1_Click(object sender, EventArgs e) { string path = this.textBox1.Text; byte[] imgBytesIn = SaveImage(path); ShowImgByByte(imgBytesIn); //Parameters.Add("@Photo", SqlDbType.Binary).Value = imgBytesIn; } //

图片转换成二进制,二进制转换为图片

package com.cn.Tetute.uitl; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import sun.misc.BASE64Decoder;

将图片转换成二进制, (用到 输入流,输出流)

public static void main(String[]args) throws IOException{ String path = "E:/图片/111.jpg"; //图片地址 File file = new File(path); //将图片转换成file类型的文件 FileInputStream fis = new FileInputStream(file); //创建输入流 byte[] byt = new byte[fis.available()]; //字节数据

十进制如何转化成二进制,返回字符串形式

def Dec2Bin(num): temp = [] result = '' while num: yushu = num % 2 num = num//2 temp.append(yushu) while temp: result += str(temp.pop()) return result print(Dec2Bin(25))======11001 temp是一个空列表,用来保存每次除2后的余数 result是一个空的字符串,用以输出二进制的字符串形式 append()将余数添加到列表

图片转化成二进制数据、等比缩放

C# 将二进制流转化成图片格式  MemoryStream ms = new MemoryStream(photo);   Bitmap bmpt = new Bitmap(ms);   //将二进制流转化成图片格式  SickPicture.Image = bmpt;   //SickPicture为pictureBox控件名称 C# 将二进制流转化成图片格式,并且图片可再次使用    Image image = Image.FromFile(PicturePath);  //直接打开会出现再

asp.net将图片转成二进制存入数据库

一.代码如下 1 int code = int.Parse(this.TextBox1.Text);//图片编码 2 string value = this.FileUpload1.PostedFile.FileName.ToString();//图片路径 3 string type = value.Substring(value.LastIndexOf(".") + 1); 4 FileStream fs = File.OpenRead(value); 5 byte[] conten