mirror of
https://github.com/SoftEtherVPN/SoftEtherVPN.git
synced 2025-04-03 18:00:08 +03:00
118 lines
2.8 KiB
C#
118 lines
2.8 KiB
C#
// CoreUtil
|
|
|
|
|
|
using System;
|
|
using System.Threading;
|
|
using System.Data;
|
|
using System.Data.Sql;
|
|
using System.Data.SqlClient;
|
|
using System.Data.SqlTypes;
|
|
using System.Text;
|
|
using System.Configuration;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Security.Cryptography;
|
|
using System.Web;
|
|
using System.Web.Security;
|
|
using System.Web.UI;
|
|
using System.Web.UI.WebControls;
|
|
using System.Web.UI.WebControls.WebParts;
|
|
using System.Web.UI.HtmlControls;
|
|
using System.IO;
|
|
using System.Drawing;
|
|
using System.Drawing.Imaging;
|
|
using System.Drawing.Drawing2D;
|
|
using System.Diagnostics;
|
|
using System.Web.Mail;
|
|
using System.Net;
|
|
using System.Net.Sockets;
|
|
using System.Net.NetworkInformation;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace CoreUtil
|
|
{
|
|
public static class Bmp
|
|
{
|
|
public static Bitmap Load(string filename)
|
|
{
|
|
return Load(IO.ReadFile(filename));
|
|
}
|
|
public static Bitmap Load(byte[] data)
|
|
{
|
|
MemoryStream ms = new MemoryStream();
|
|
ms.Write(data, 0, data.Length);
|
|
ms.Seek(0, SeekOrigin.Begin);
|
|
|
|
return new Bitmap(ms);
|
|
}
|
|
|
|
public static void SaveAsBitmap(Bitmap bmp, string filename)
|
|
{
|
|
IO.SaveFile(filename, SaveAsBitmap(bmp));
|
|
}
|
|
public static byte[] SaveAsBitmap(Bitmap bmp)
|
|
{
|
|
MemoryStream ms = new MemoryStream();
|
|
|
|
bmp.Save(ms, ImageFormat.Bmp);
|
|
|
|
return ms.ToArray();
|
|
}
|
|
|
|
public static void SaveAsJpeg(Bitmap bmp, string filename)
|
|
{
|
|
IO.SaveFile(filename, SaveAsJpeg(bmp));
|
|
}
|
|
public static byte[] SaveAsJpeg(Bitmap bmp)
|
|
{
|
|
return SaveAsJpeg(bmp, 100);
|
|
}
|
|
public static void SaveAsJpeg(Bitmap bmp, string filename, int quality)
|
|
{
|
|
IO.SaveFile(filename, SaveAsJpeg(bmp, quality));
|
|
}
|
|
public static byte[] SaveAsJpeg(Bitmap bmp, int quality)
|
|
{
|
|
EncoderParameters eps = new EncoderParameters(1);
|
|
EncoderParameter ep = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
|
|
eps.Param[0] = ep;
|
|
|
|
ImageCodecInfo info = getEncoderInfo("image/jpeg");
|
|
|
|
MemoryStream ms = new MemoryStream();
|
|
bmp.Save(ms, info, eps);
|
|
|
|
return ms.ToArray();
|
|
}
|
|
|
|
static ImageCodecInfo getEncoderInfo(string type)
|
|
{
|
|
ImageCodecInfo[] encs = ImageCodecInfo.GetImageEncoders();
|
|
|
|
foreach (ImageCodecInfo enc in encs)
|
|
{
|
|
if (Str.StrCmpi(enc.MimeType, type))
|
|
{
|
|
return enc;
|
|
}
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
public static Bitmap ResizeBitmap(Bitmap bmp, int width, int height)
|
|
{
|
|
Bitmap dst = new Bitmap(width, height, PixelFormat.Format24bppRgb);
|
|
Graphics g = Graphics.FromImage(dst);
|
|
g.SmoothingMode = SmoothingMode.HighQuality;
|
|
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
|
|
|
|
Rectangle r = new Rectangle(0, 0, width, height);
|
|
|
|
g.DrawImage(bmp, r);
|
|
|
|
return dst;
|
|
}
|
|
}
|
|
}
|