C#3.5中的图像处理 [英] Image processing in C#3.5

查看:79
本文介绍了C#3.5中的图像处理的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在C#.net中进行图像处理的裁剪?给出代码!

How croping is done for image processing in C#.net? give the code!

推荐答案

[ ^ ]可能会为您提供帮助.
This[^] may help you.


公共静态无效CropImageFile(string ImageFrom,string ImageTo,int targetW,int targetH)
{
图片imgPhoto = Image.FromFile(ImageFrom);
int targetX =(imgPhoto.Width-targetW)/2;
int targetY =(imgPhoto.Height-targetH)/2;

位图bmPhoto =新位图(targetW,targetH,PixelFormat.Format24bppRgb);
bmPhoto.SetResolution(72,72);
图形grPhoto = Graphics.FromImage(bmPhoto);
grPhoto.SmoothingMode = SmoothingMode.AntiAlias;
grPhoto.InterpolationMode = InterpolationMode.HighQualityBicubic;
grPhoto.PixelOffsetMode = PixelOffsetMode.HighQuality;
grPhoto.DrawImage
(
imgPhoto,
新Rectangle(0,0,targetW,targetH),
targetX,
targetY,
targetW,
targetH,
GraphicsUnit.Pixel
);
//保存到内存,然后保存到文件.我们处理所有对象,以确保文件不会保持锁定状态.
EncoderParameters ep =新的EncoderParameters(1);
ep.Param [0] =新的EncoderParameter(Encoder.Quality,(long)100);

ImageCodecInfo ici = GetEncoderInfo("image/jpeg");

imgPhoto.Dispose();
grPhoto.Dispose();

bmPhoto.Save(ImageTo,ici,ep);
bmPhoto.Dispose();
}

私有静态ImageCodecInfo GetEncoderInfo(String mimeType)
{
int j;
ImageCodecInfo []编码器;
编码器= ImageCodecInfo.GetImageEncoders();
for(j = 0; j& lt encoders.Length; ++ j)
{
if(encoders [j] .MimeType == mimeType)
返回编码器[j];
}
返回null;
}
public static void CropImageFile(string ImageFrom, string ImageTo, int targetW, int targetH)
{
Image imgPhoto = Image.FromFile(ImageFrom);
int targetX = (imgPhoto.Width - targetW) / 2;
int targetY = (imgPhoto.Height - targetH) / 2;

Bitmap bmPhoto = new Bitmap(targetW, targetH, PixelFormat.Format24bppRgb);
bmPhoto.SetResolution(72, 72);
Graphics grPhoto = Graphics.FromImage(bmPhoto);
grPhoto.SmoothingMode = SmoothingMode.AntiAlias;
grPhoto.InterpolationMode = InterpolationMode.HighQualityBicubic;
grPhoto.PixelOffsetMode = PixelOffsetMode.HighQuality;
grPhoto.DrawImage
(
imgPhoto,
new Rectangle(0, 0, targetW, targetH),
targetX,
targetY,
targetW,
targetH,
GraphicsUnit.Pixel
);
// Save out to memory and then to a file. We dispose of all objects to make sure the files don''t stay locked.
EncoderParameters ep = new EncoderParameters(1);
ep.Param[0] = new EncoderParameter(Encoder.Quality, (long)100);

ImageCodecInfo ici = GetEncoderInfo("image/jpeg");

imgPhoto.Dispose();
grPhoto.Dispose();

bmPhoto.Save(ImageTo, ici, ep);
bmPhoto.Dispose();
}

private static 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;
}


这篇关于C#3.5中的图像处理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆