C#图片压缩代码

下面的示例从 BMP 文件创建 Bitmap 对象。此代码将位图保存为 3 个 JPEG 文件,每个都有不同的质量级别。
[C#]
 1 None.gif using  System;
 2 None.gif using  System.Drawing;
 3 None.gif using  System.Drawing.Imaging;
 4 None.gif class  Example_SetJPEGQuality
 5 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
 6InBlock.gifpublic static void Main()
 7ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
 8InBlock.gifBitmap myBitmap;
 9InBlock.gifImageCodecInfo myImageCodecInfo;
10InBlock.gifEncoder myEncoder;
11InBlock.gifEncoderParameter myEncoderParameter;
12InBlock.gifEncoderParameters myEncoderParameters;
13InBlock.gif// Create a Bitmap object based on a BMP file.
14InBlock.gifmyBitmap = new Bitmap("Shapes.bmp");
15InBlock.gif// Get an ImageCodecInfo object that represents the JPEG codec.
16InBlock.gifmyImageCodecInfo = GetEncoderInfo("image/jpeg");
17InBlock.gif// Create an Encoder object based on the GUID
18InBlock.gif// for the Quality parameter category.
19InBlock.gifmyEncoder = Encoder.Quality;
20InBlock.gif// Create an EncoderParameters object.
21InBlock.gif// An EncoderParameters object has an array of EncoderParameter
22InBlock.gif// objects. In this case, there is only one
23InBlock.gif// EncoderParameter object in the array.
24InBlock.gifmyEncoderParameters = new EncoderParameters(1);
25InBlock.gif// Save the bitmap as a JPEG file with quality level 25.
26InBlock.gifmyEncoderParameter = new EncoderParameter(myEncoder, 25L);
27InBlock.gifmyEncoderParameters.Param[0= myEncoderParameter;
28InBlock.gifmyBitmap.Save("Shapes025.jpg", myImageCodecInfo, myEncoderParameters);
29InBlock.gif// Save the bitmap as a JPEG file with quality level 50.
30InBlock.gifmyEncoderParameter = new EncoderParameter(myEncoder, 50L);
31InBlock.gifmyEncoderParameters.Param[0= myEncoderParameter;
32InBlock.gifmyBitmap.Save("Shapes050.jpg", myImageCodecInfo, myEncoderParameters);
33InBlock.gif// Save the bitmap as a JPEG file with quality level 75.
34InBlock.gifmyEncoderParameter = new EncoderParameter(myEncoder, 75L);
35InBlock.gifmyEncoderParameters.Param[0= myEncoderParameter;
36InBlock.gifmyBitmap.Save("Shapes075.jpg", myImageCodecInfo, myEncoderParameters);
37ExpandedSubBlockEnd.gif}

38InBlock.gifprivate static ImageCodecInfo GetEncoderInfo(String mimeType)
39ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
40InBlock.gifint j;
41InBlock.gifImageCodecInfo[] encoders;
42InBlock.gifencoders = ImageCodecInfo.GetImageEncoders();
43InBlock.giffor(j = 0; j < encoders.Length; ++j)
44ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
45InBlock.gifif(encoders[j].MimeType == mimeType)
46InBlock.gifreturn encoders[j];
47ExpandedSubBlockEnd.gif}

48InBlock.gifreturn null;
49ExpandedSubBlockEnd.gif}

50ExpandedBlockEnd.gif}

51 None.gif
52 None.gif

 

转载于:https://www.cnblogs.com/niuniu502/archive/2006/09/14/503812.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值