83 lines
3.0 KiB
C#
83 lines
3.0 KiB
C#
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Configuration;
|
|||
|
|
using System.Drawing;
|
|||
|
|
using System.IO;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Text;
|
|||
|
|
using System.Threading.Tasks;
|
|||
|
|
|
|||
|
|
namespace ZWL.Common
|
|||
|
|
{
|
|||
|
|
public class ImgUtil
|
|||
|
|
{
|
|||
|
|
#region base64转换为图片并返回图片路径
|
|||
|
|
public static string ConvertImg(string strBase)
|
|||
|
|
{
|
|||
|
|
var base64 = strBase.Replace("data:image/png;base64,", "").Replace("data:image/jgp;base64,", "").Replace("data:image/jpg;base64,", "").Replace("data:image/jpeg;base64,", "");//将base64头部信息替换
|
|||
|
|
byte[] bytes = Convert.FromBase64String(base64);
|
|||
|
|
MemoryStream memStream = new MemoryStream(bytes);
|
|||
|
|
Image mImage = Image.FromStream(memStream);
|
|||
|
|
//Bitmap bp = new Bitmap(mImage);
|
|||
|
|
Bitmap bp = PercentImage(mImage);
|
|||
|
|
MemoryStream ms = new MemoryStream();
|
|||
|
|
string strPhotoPath = ConfigurationManager.AppSettings["Photo"].ToString();
|
|||
|
|
if (!Directory.Exists(strPhotoPath))
|
|||
|
|
{
|
|||
|
|
DirectoryInfo directoryInfo = new DirectoryInfo(strPhotoPath);
|
|||
|
|
directoryInfo.Create();
|
|||
|
|
}
|
|||
|
|
strPhotoPath += "\\" + Guid.NewGuid().ToString() + ".jpg";
|
|||
|
|
bp.Save(strPhotoPath, System.Drawing.Imaging.ImageFormat.Jpeg);
|
|||
|
|
|
|||
|
|
return strPhotoPath;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 压缩图片,宽度最大为1200
|
|||
|
|
/// 2023-11-29 xulu
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="srcImage"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static Bitmap PercentImage(System.Drawing.Image srcImage)
|
|||
|
|
{
|
|||
|
|
int newW = srcImage.Width < 1200 ? srcImage.Width : 1200;
|
|||
|
|
int newH = int.Parse(Math.Round(srcImage.Height * (double)newW / srcImage.Width).ToString());
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
Bitmap b = new Bitmap(newW, newH);
|
|||
|
|
Graphics g = Graphics.FromImage(b);
|
|||
|
|
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Default;
|
|||
|
|
g.DrawImage(srcImage, new System.Drawing.Rectangle(0, 0, newW, newH), new System.Drawing.Rectangle(0, 0, srcImage.Width, srcImage.Height), GraphicsUnit.Pixel);
|
|||
|
|
g.Dispose();
|
|||
|
|
return b;
|
|||
|
|
}
|
|||
|
|
catch (Exception)
|
|||
|
|
{
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
#region 图片文件转base64
|
|||
|
|
public static string DocumentToBase64Str(string fileName)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
FileStream filestream = new FileStream(fileName, FileMode.Open);
|
|||
|
|
byte[] bt = new byte[filestream.Length];
|
|||
|
|
//调用read读取方法
|
|||
|
|
filestream.Read(bt, 0, bt.Length);
|
|||
|
|
string base64Str = Convert.ToBase64String(bt);
|
|||
|
|
filestream.Close();
|
|||
|
|
return base64Str;
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
return "";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
}
|
|||
|
|
}
|