zoukankan      html  css  js  c++  java
  • c# bitmap的拷贝及一个图像工具类

    1                 using (Bitmap bmp = new Bitmap(scanImgPath))
    2                 {
    3                     Bitmap bitmap = new Bitmap(bmp.Width, bmp.Height, PixelFormat.Format16bppRgb555);
    4                     using (Graphics draw = Graphics.FromImage(bitmap))
    5                     {
    6                         draw.DrawImage(bmp, 0, 0, bitmap.Width, bitmap.Height);
    7                         picScanImg.Image = bitmap as Image;
    8                     }
    9                 }
      1 using System;
      2 using System.Collections.Generic;
      3 using System.Drawing;
      4 using System.Text;
      5 
      6 namespace TJCFinanceWriteOff.BizLogic.Common
      7 {
      8     public class ImageUtil
      9     {
     10         /// <summary>
     11         /// 图片镜像翻转
     12         /// </summary>
     13         /// <param name="imagePath">图片路径</param>
     14         /// <param name="isCover">是否覆盖</param>
     15         /// <returns></returns>
     16         public static Image ImageFlip(string imagePath,bool isCover = false)
     17         {
     18             Bitmap bitmap = Bitmap.FromFile(imagePath) as Bitmap;
     19             bitmap.RotateFlip(RotateFlipType.Rotate180FlipY);  //图片镜像翻转
     20             if (isCover is true) bitmap.Save(imagePath,System.Drawing.Imaging.ImageFormat.Jpeg);
     21             return bitmap;
     22         }
     23 
     24         /// <summary>
     25         /// 图片顺时针旋转180度
     26         /// </summary>
     27         /// <param name="imagePath">图片路径</param>
     28         /// <param name="isCover">是否覆盖</param>
     29         /// <returns></returns>
     30         public static Image ImageRotate(string imagePath,bool isCover = false)
     31         {
     32             Bitmap bitmap = Bitmap.FromFile(imagePath) as Bitmap;
     33             bitmap.RotateFlip(RotateFlipType.Rotate180FlipNone);  //图片顺时针180度
     34             if (isCover is true) bitmap.Save(imagePath,System.Drawing.Imaging.ImageFormat.Jpeg);
     35             return bitmap;
     36         }
     37 
     38         /// <summary>
     39         /// 图片等比缩放
     40         /// </summary>
     41         /// <param name="imagePath"></param>
     42         /// <returns></returns>
     43         public static Image ImageScaleZoom(string imagePath, double process)
     44         {
     45             Bitmap bitmap = Bitmap.FromFile(imagePath) as Bitmap;
     46             double width = bitmap.Width * process; ;//图片最终的宽
     47             double height = bitmap.Height * process;//图片最终的高
     48             return bitmap.GetThumbnailImage((int)width, (int)height, () => { return false; }, IntPtr.Zero);
     49         }
     50 
     51         public static Image ImageScaleZoom(Image sourceImage, double process)
     52         {
     53             double width = sourceImage.Width * process; ;//图片最终的宽
     54             double height = sourceImage.Height * process;//图片最终的高
     55             try
     56             {
     57                 System.Drawing.Imaging.ImageFormat format = sourceImage.RawFormat;
     58                 Bitmap targetPicture = new Bitmap((int)width, (int)height);
     59                 Graphics g = Graphics.FromImage(targetPicture);
     60                 g.DrawImage(sourceImage, 0, 0, (int)width, (int)height);
     61                 sourceImage.Dispose();
     62                 return targetPicture;
     63             }
     64             catch (Exception ex)
     65             {
     66 
     67             }
     68             return null;
     69         }
     70 
     71         public static Image ImageAssignZoom(Image sourceImage, int targetWidth, int targetHeight)
     72         {
     73             int width;//图片最终的宽
     74             int height;//图片最终的高
     75             try
     76             {
     77                 System.Drawing.Imaging.ImageFormat format = sourceImage.RawFormat;
     78                 Bitmap targetPicture = new Bitmap(targetWidth, targetHeight);
     79                 Graphics g = Graphics.FromImage(targetPicture);
     80 
     81                 if (sourceImage.Width > targetWidth && sourceImage.Height <= targetHeight)
     82                 {
     83                     width = targetWidth;
     84                     height = (width * sourceImage.Height) / sourceImage.Width;  //
     85                 }
     86                 else if (sourceImage.Width <= targetWidth && sourceImage.Height > targetHeight)
     87                 {
     88                     height = targetHeight;
     89                     width = (height * sourceImage.Width) / sourceImage.Height;
     90                 }
     91                 else if (sourceImage.Width <= targetWidth && sourceImage.Height <= targetHeight)
     92                 {
     93                     width = sourceImage.Width;
     94                     height = sourceImage.Height;
     95                 }
     96                 else
     97                 {
     98                     width = targetWidth;
     99                     height = (width * sourceImage.Height) / sourceImage.Width;
    100                     if (height > targetHeight)
    101                     {
    102                         height = targetHeight;
    103                         width = (height * sourceImage.Width) / sourceImage.Height;
    104                     }
    105                 }
    106                 g.DrawImage(sourceImage, 0, 0, width, height);
    107                 sourceImage.Dispose();
    108 
    109                 return targetPicture;
    110             }
    111             catch (Exception ex)
    112             {
    113 
    114             }
    115             return null;
    116         }
    117     }
    118 }
  • 相关阅读:
    安全麻烦不断 Mozilla再次推迟火狐浏览器3.1版发布 狼人:
    法国海军计算机遭病毒入侵 战机受影响停飞两天 狼人:
    金融危机下 如何看待SMB安全变化 狼人:
    卡巴斯基遭黑客SQL入侵 曝光敏感信息 狼人:
    经济危机致高科技人才变身网络黑客 狼人:
    McAfee 09安全威胁预测:低迷经济推动病毒流行 狼人:
    Windows 7用户帐户控制功能将在RC版修正 狼人:
    微软否认Windows 7存在缺陷 称UAC不会被黑客利用 狼人:
    选中网页内容safari浏览器复制粘贴
    插入容器STL学习笔记(八) 序列式容器 共性
  • 原文地址:https://www.cnblogs.com/fanqisoft/p/11757053.html
Copyright © 2011-2022 走看看