using System;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
public partial class UserDefinedFunctions
{
[Microsoft.SqlServer.Server.SqlFunction]
public static byte[] myCompress(byte[] image, int level, int suofang)
{
myCompress my = new myCompress();
return my.Compress(image, level, suofang);
}
}
public class myCompress
{
private ImageCodecInfo GetEncoderInfo(String mimeType)
{
int j;
ImageCodecInfo[] encoders;
encoders = ImageCodecInfo.GetImageEncoders();
for (j = 0; j < encoders.Length; ++j)
{
if (encoders[j].MimeType == mimeType)
return encoders[j];
}
return null;
}
public byte[] Compress(byte[] imgs, long q,int b)
{
using (MemoryStream ms = new MemoryStream(imgs))
{
Image image = Image.FromStream(ms);
int w = image.Width / b;
int h = image.Height / b;
var bitmap = new Bitmap(image, w, h);
var codecInfo = GetEncoderInfo(@"image/jpeg");
var myEncoder = Encoder.Quality;
var myEncoderParameters = new EncoderParameters(1);
var myEncoderParameter = new EncoderParameter(myEncoder, q);
myEncoderParameters.Param[0] = myEncoderParameter;
using (MemoryStream ms2 = new MemoryStream())
{
bitmap.Save(ms2, codecInfo, myEncoderParameters);
myEncoderParameters.Dispose();
myEncoderParameter.Dispose();
return ms2.ToArray();
}
}
}
}
CLR压缩图片
最新推荐文章于 2024-07-17 07:12:01 发布