using System;
using System.Collections.Generic;
using
System.Text;
using System.Drawing;
using System.Drawing.Imaging;
using
System.IO;
using System.Windows.Forms;

namespace EU.EUClass
{

class ImgGDI
  {
      public
ImgGDI()
      {
       
//构造函数
      }

///
      /// Bitmap转换byte[]数组
 
  ///
      ///
   
///
      public byte[] Bmptobyte(Bitmap
bmp)
      {
       
MemoryStream ms = new MemoryStream();
     
  bmp.Save(ms, ImageFormat.Jpeg);
     
  ms.Flush();
          byte[]
buffer = ms.GetBuffer();
         
ms.Close();
          return
buffer;
      }

///
      /// byte[]数组转换Bitmap
   
///
      ///
     
///
      public Bitmap bytetobmp(byte[]
buffer)
      {
       
MemoryStream ms = new MemoryStream();
     
  ms.Write(buffer, 0, buffer.Length);
     
  Bitmap bmp = new Bitmap(ms);
       
ms.Close();
          return
bmp;
      }

///
      /// 返回默认图片
     
///
      ///
      public
Bitmap getInstance()
      {
   
    Bitmap bmp = DefaultPic();
     
  return bmp;
      }

///
      /// 选取本地图片
 
  ///
      ///
   
///
      public Bitmap LocalIMG(string
IMG)
      {
       
FileStream fs = new FileStream(IMG, FileMode.Open);
 
      Bitmap bmp = new Bitmap(fs);
   
    fs.Close();
         
return bmp;
      }

///
      /// 返回流状态图片
     
///
      ///
     
///
      public Bitmap ImgFromBase64(string
Img)
      {
       
Bitmap bmp;
          byte[] buffer =
Convert.FromBase64String(Img);
          if
(buffer.Length > 0)
          {

MemoryStream ms = new
MemoryStream();
             
ms.Write(buffer, 0, buffer.Length);
         
  bmp = new Bitmap(ms);
         
  ms.Close();
           
return bmp;
          }

else
       
{
              bmp =
DefaultPic() ;
              return
bmp;
          }
   
}

///
     
/// 默认图片
      ///
     
///
      private Bitmap DefaultPic()
 
  {
          FileStream fs = new
FileStream(Application.StartupPath + @"\Goodr.jpg", FileMode.Open);

Bitmap bmp = new Bitmap(fs);
 
      fs.Close();
       
return bmp;
      }

///
      /// GDI压缩图片
   
///
      /// 传入参数Bitmap
   
///
      public byte[] ImageGdi(Bitmap
bmp)
      {
       
Bitmap xbmp = new Bitmap(bmp);
       
MemoryStream ms = new MemoryStream();
     
  xbmp.Save(ms, ImageFormat.Jpeg);
     
  byte[] buffer;
         
ms.Flush();
          if (ms.Length >
95000)
          {
   
        //buffer = ms.GetBuffer();
 
          double new_width = 0;
 
          double new_height = 0;

Image m_src_image = Image.FromStream(ms);
   
        if (m_src_image.Width >=
m_src_image.Height)
             
{
                 
new_width = 1024;
             
  new_height = new_width * m_src_image.Height /
(double)m_src_image.Width;
           
}
              else if
(m_src_image.Height >= m_src_image.Width)
     
      {
         
      new_height = 768;
     
          new_width = new_height *
m_src_image.Width / (double)m_src_image.Height;
     
      }

Bitmap bbmp = new Bitmap((int)new_width, (int)new_height,
m_src_image.PixelFormat);
           
Graphics m_graphics = Graphics.FromImage(bbmp);
   
        m_graphics.SmoothingMode =
System.Drawing.Drawing2D.SmoothingMode.HighQuality;
   
        m_graphics.InterpolationMode =
System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
 
          m_graphics.DrawImage(m_src_image, 0,
0, bbmp.Width, bbmp.Height);

ms = new MemoryStream();

bbmp.Save(ms, ImageFormat.Jpeg);
   
        buffer = ms.GetBuffer();
 
          ms.Close();

return buffer;
   
    }
         
else
          {
   
        buffer = ms.GetBuffer();
 
          ms.Close();
   
        return buffer;
     
  }
      }
  }
}

C#图片压缩类winform的更多相关文章

  1. PHP图片压缩类,高清无损直接用就ok啦

    这个不完全是我自己写的-_-!,但是好用呀 <?php /** * Created by PhpStorm. * Note:文件介绍 * User: Lynly * Date: 2018/11/ ...

  2. Android的图片压缩类ThumbnailUtils

    从Android 2.2开始系统新增了一个缩略图ThumbnailUtils类,位于framework包下的android.media.ThumbnailUtils位置,可以帮助我们从mediapro ...

  3. PHP 图片缩放类

    <?php /** * 图片压缩类:通过缩放来压缩. * 如果要保持源图比例,把参数$percent保持为1即可. * 即使原比例压缩,也可大幅度缩小.数码相机4M图片.也可以缩为700KB左右 ...

  4. PHP图片压缩

    <?php /** * 分享请保持网址.尊重别人劳动成果.谢谢. * 图片压缩类:通过缩放来压缩.如果要保持源图比例,把参数$percent保持为1即可. * 即使原比例压缩,也可大幅度缩小.数 ...

  5. 使用FormData数据做图片上传: new FormData() canvas实现图片压缩

    使用FormData数据做图片上传: new FormData()       canvas实现图片压缩 ps: 千万要使用append不要用set   苹果ios有兼容问题导致数据获取不到,需要后台 ...

  6. php图片压缩-高清晰度

    php高清晰度无损压缩 经常会用到把上传的大图片压缩,特别是体积,在微信等APP应用上,也默认都是有压缩的,那么,怎么样对图片大幅度压缩却仍能保持较高的清晰度呢? 压缩通常是有按比例缩放,和指定宽度压 ...

  7. 图片压缩java工具类

    package com.net.util; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.Fil ...

  8. 压缩图片工具类,压缩100KB以内拿走直接用

    最近遇到自拍上传图片过大问题,很烦恼,所以自己写了一个压缩图片的工具类使用,自测效果很不错,可以压缩到KB以内,像素还可以分辨清晰 下面Java代码奉上: import lombok.extern.s ...

  9. java图片压缩工具类(指定压缩大小)

    1:先导入依赖 <!--thumbnailator图片处理--> <dependency> <groupId>net.coobird</groupId> ...

随机推荐

  1. 用swift创建各种UI控件【iSwifting社区】

    为了方便大家学习,www.iSwifting.com社区为大家准备了创建各种UI控件的代码.開始看着语法可能有些别扭,当用习惯了,就认为还是非常不错的. 社区还添加了问答专区.有问题的朋友.虽然问.大 ...

  2. SAP文件夹的判断与创建

    [转自 http://blog.csdn.net/saphome/article/details/6956918] SAP文件夹存在的判断与创建 2010-08-29 20:15 相关函数:WS_QU ...

  3. Spring注解式与配置文件式

    http://tom-seed.iteye.com/blog/1584632 Spring注解方式bean容器管理 1.通过在配置文件中配置spring组件注入 <context:compone ...

  4. FlashFXP上传下载

    正常情况我们的生产环境我们本地是不能直接访问的,因为网段不通,且生产环境不允许我们随便访问,但是对于我们自运维的集群我们有时候需要上去做一些操作,通过堡垒机跳转到生产机器上即可,但是我们不能通过xsh ...

  5. LeetCode:字母异位词分组【16】

    LeetCode:字母异位词分组[16] 题目描述 给定一个字符串数组,将字母异位词组合在一起.字母异位词指字母相同,但排列不同的字符串. 示例: 输入: ["eat", &quo ...

  6. migrate

    数据类型 引用 # :string, :text, :integer, :float,:decimal, :datetime, :timestamp, :time, :date, # :binary, ...

  7. Spark Structured Streaming框架(5)之进程管理

    Structured Streaming提供一些API来管理Streaming对象.用户可以通过这些API来手动管理已经启动的Streaming,保证在系统中的Streaming有序执行. 1. St ...

  8. bagging与boosting集成学习、随机森林

    主要内容: 一.bagging.boosting集成学习 二.随机森林 一.bagging.boosting集成学习 1.bagging: 从原始样本集中独立地进行k轮抽取,生成训练集.每轮从原始样本 ...

  9. EntityFramework 学习 一 DbSet

    DBSet类表示一个实体的集合,用来创建.更新.删除.查询操作,DBSet<TEntity>是DBSet的泛型版本 你可以使用DbContext获取DBSet的引用,例如dbContext ...

  10. 算法(Algorithms)第4版 练习 2.1.1

    E A S Y Q U E S T I O N A E S Y Q U E S T I O N A E S Y Q U E S T I O N A E E Y Q U S S T I O N A E ...