C#图片压缩代码
下面的示例从 BMP 文件创建 Bitmap 对象。此代码将位图保存为 3 个 JPEG 文件,每个都有不同的质量级别。
[C#]
[C#]
1
using System;
2
using System.Drawing;
3
using System.Drawing.Imaging;
4
class Example_SetJPEGQuality
5
{
6
public static void Main()
7
{
8
Bitmap myBitmap;
9
ImageCodecInfo myImageCodecInfo;
10
Encoder myEncoder;
11
EncoderParameter myEncoderParameter;
12
EncoderParameters myEncoderParameters;
13
// Create a Bitmap object based on a BMP file.
14
myBitmap = new Bitmap("Shapes.bmp");
15
// Get an ImageCodecInfo object that represents the JPEG codec.
16
myImageCodecInfo = GetEncoderInfo("image/jpeg");
17
// Create an Encoder object based on the GUID
18
// for the Quality parameter category.
19
myEncoder = Encoder.Quality;
20
// Create an EncoderParameters object.
21
// An EncoderParameters object has an array of EncoderParameter
22
// objects. In this case, there is only one
23
// EncoderParameter object in the array.
24
myEncoderParameters = new EncoderParameters(1);
25
// Save the bitmap as a JPEG file with quality level 25.
26
myEncoderParameter = new EncoderParameter(myEncoder, 25L);
27
myEncoderParameters.Param[0] = myEncoderParameter;
28
myBitmap.Save("Shapes025.jpg", myImageCodecInfo, myEncoderParameters);
29
// Save the bitmap as a JPEG file with quality level 50.
30
myEncoderParameter = new EncoderParameter(myEncoder, 50L);
31
myEncoderParameters.Param[0] = myEncoderParameter;
32
myBitmap.Save("Shapes050.jpg", myImageCodecInfo, myEncoderParameters);
33
// Save the bitmap as a JPEG file with quality level 75.www.elivn.com
34
myEncoderParameter = new EncoderParameter(myEncoder, 75L);
35
myEncoderParameters.Param[0] = myEncoderParameter;
36
myBitmap.Save("Shapes075.jpg", myImageCodecInfo, myEncoderParameters);
37
}
38
private static ImageCodecInfo GetEncoderInfo(String mimeType)
39
{
40
int j;
41
ImageCodecInfo[] encoders;
42
encoders = ImageCodecInfo.GetImageEncoders();
43
for(j = 0; j < encoders.Length; ++j)
44
{
45
if(encoders[j].MimeType == mimeType)
46
return encoders[j];
47
}
48
return null;
49
}
50
}
51
52
using System;2
using System.Drawing;3
using System.Drawing.Imaging;4
class Example_SetJPEGQuality5
{6
public static void Main()7
{8
Bitmap myBitmap;9
ImageCodecInfo myImageCodecInfo;10
Encoder myEncoder;11
EncoderParameter myEncoderParameter;12
EncoderParameters myEncoderParameters;13
// Create a Bitmap object based on a BMP file.14
myBitmap = new Bitmap("Shapes.bmp");15
// Get an ImageCodecInfo object that represents the JPEG codec.16
myImageCodecInfo = GetEncoderInfo("image/jpeg");17
// Create an Encoder object based on the GUID18
// for the Quality parameter category.19
myEncoder = Encoder.Quality;20
// Create an EncoderParameters object.21
// An EncoderParameters object has an array of EncoderParameter22
// objects. In this case, there is only one23
// EncoderParameter object in the array.24
myEncoderParameters = new EncoderParameters(1);25
// Save the bitmap as a JPEG file with quality level 25.26
myEncoderParameter = new EncoderParameter(myEncoder, 25L);27
myEncoderParameters.Param[0] = myEncoderParameter;28
myBitmap.Save("Shapes025.jpg", myImageCodecInfo, myEncoderParameters);29
// Save the bitmap as a JPEG file with quality level 50.30
myEncoderParameter = new EncoderParameter(myEncoder, 50L);31
myEncoderParameters.Param[0] = myEncoderParameter;32
myBitmap.Save("Shapes050.jpg", myImageCodecInfo, myEncoderParameters);33
// Save the bitmap as a JPEG file with quality level 75.www.elivn.com34
myEncoderParameter = new EncoderParameter(myEncoder, 75L);35
myEncoderParameters.Param[0] = myEncoderParameter;36
myBitmap.Save("Shapes075.jpg", myImageCodecInfo, myEncoderParameters);37
}38
private static ImageCodecInfo GetEncoderInfo(String mimeType)39
{40
int j;41
ImageCodecInfo[] encoders;42
encoders = ImageCodecInfo.GetImageEncoders();43
for(j = 0; j < encoders.Length; ++j)44
{45
if(encoders[j].MimeType == mimeType)46
return encoders[j];47
}48
return null;49
}50
}51

52

转载请注明出处!
http://www.elivn.com



浙公网安备 33010602011771号