• 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 }
  • 相关阅读:
    ubuntu 安装docker
    docker 版本与查看某个容器详情信息
    linux namespace 分为有名和无名两种,默认情况下都是有名的
    查看centos 版本信息
    centos7 一键安装openstack 方法
    centos8 安装openstack (失败告终),参见centos7安装
    Windows7 安装docker工具的方法
    网络架构--防火墙双机热备(主备、负载均衡)
    ubuntu server 无线网口配置
    ubuntu server 18.04 单机安装openstack
  • 原文地址:https://www.cnblogs.com/fanqisoft/p/11757053.html
Copyright © 2020-2023  润新知