異なる形式の拡張子を持つユーザーから画像を取得する必要があります。扱いやすいように、画像を「jpg」として保存したいと考えています。 良い方法は、品質をアーミングせずにCで行うことですか?c#画像形式をjpgに変換する
答えて
から:http://msdn.microsoft.com/en-us/library/system.drawing.imaging.encoderparameter.aspx
private void VaryQualityLevel()
{
// Get a bitmap.
Bitmap bmp1 = new Bitmap(@"c:\TestPhoto.jpg");
ImageCodecInfo jgpEncoder = GetEncoder(ImageFormat.Jpeg);
// Create an Encoder object based on the GUID
// for the Quality parameter category.
System.Drawing.Imaging.Encoder myEncoder =
System.Drawing.Imaging.Encoder.Quality;
// Create an EncoderParameters object.
// An EncoderParameters object has an array of EncoderParameter
// objects. In this case, there is only one
// EncoderParameter object in the array.
EncoderParameters myEncoderParameters = new EncoderParameters(1);
EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder,
50L);
myEncoderParameters.Param[0] = myEncoderParameter;
bmp1.Save(@"c:\TestPhotoQualityFifty.jpg", jgpEncoder,
myEncoderParameters);
myEncoderParameter = new EncoderParameter(myEncoder, 100L);
myEncoderParameters.Param[0] = myEncoderParameter;
bmp1.Save(@"c:\TestPhotoQualityHundred.jpg", jgpEncoder,
myEncoderParameters);
// Save the bitmap as a JPG file with zero quality level compression.
myEncoderParameter = new EncoderParameter(myEncoder, 0L);
myEncoderParameters.Param[0] = myEncoderParameter;
bmp1.Save(@"c:\TestPhotoQualityZero.jpg", jgpEncoder,
myEncoderParameters);
}
...
private ImageCodecInfo GetEncoder(ImageFormat format)
{
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
foreach (ImageCodecInfo codec in codecs)
{
if (codec.FormatID == format.Guid)
{
return codec;
}
}
return null;
}
優秀はあなたに感謝を取る場合でも、 –
以上コードは私のために働いていないようです。それはImageCodecInfoクラスを見つけることができません。 –
は動作します.. btw @c:\ TestPhotoQualityZero.jpgの@symbolは –
イメージAPIを使用してイメージをメモリ内に作成し、それをJPGで保持することができます。 http://msdn.microsoft.com/en-us/library/ms142147.aspx
WindowsのGDI +メモリに 画像を保存し、メモリ内の画像を操作するためのImage classとBitmap classを提供します。 GDI +はイメージエンコーダの助けを借りてイメージ をディスクファイルに書き込み、 ディスクイメージのイメージをイメージデコーダの助けを借りて読み込みます。
オーバーロードをチェックして機能を実装してください。タイプImageFormat Classのさまざまな画像フォーマットをサポートしています。
あなたはエンコーディングなど
コードスニペットとJpg
ファイルを保存できるようになるこれ、Image.Save Method (String, ImageCodecInfo, EncoderParameters)上の例は次のとおり
using System;
using System.Drawing;
using System.Drawing.Imaging;
class Example_SetJPEGQuality
{
public static void Main()
{
Bitmap myBitmap;
ImageCodecInfo myImageCodecInfo;
Encoder myEncoder;
EncoderParameter myEncoderParameter;
EncoderParameters myEncoderParameters;
// Create a Bitmap object based on a BMP file.
myBitmap = new Bitmap("Shapes.bmp");
// Get an ImageCodecInfo object that represents the JPEG codec.
myImageCodecInfo = GetEncoderInfo("image/jpeg");
// Create an Encoder object based on the GUID
// for the Quality parameter category.
myEncoder = Encoder.Quality;
// Create an EncoderParameters object.
// An EncoderParameters object has an array of EncoderParameter
// objects. In this case, there is only one
// EncoderParameter object in the array.
myEncoderParameters = new EncoderParameters(1);
// Save the bitmap as a JPEG file with quality level 25.
myEncoderParameter = new EncoderParameter(myEncoder, 25L);
myEncoderParameters.Param[0] = myEncoderParameter;
myBitmap.Save("Shapes025.jpg", myImageCodecInfo, myEncoderParameters);
// Save the bitmap as a JPEG file with quality level 50.
myEncoderParameter = new EncoderParameter(myEncoder, 50L);
myEncoderParameters.Param[0] = myEncoderParameter;
myBitmap.Save("Shapes050.jpg", myImageCodecInfo, myEncoderParameters);
// Save the bitmap as a JPEG file with quality level 75.
myEncoderParameter = new EncoderParameter(myEncoder, 75L);
myEncoderParameters.Param[0] = myEncoderParameter;
myBitmap.Save("Shapes075.jpg", myImageCodecInfo, myEncoderParameters);
}
//コーデック情報
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;
}
}
・ホープこのヘルプを..
私はこの単純な拡張子ストリームを変換するには、それを変換して品質には何もしません。
public static Stream ConvertImage(this Stream originalStream, ImageFormat format)
{
var image = Image.FromStream(originalStream);
var stream = new MemoryStream();
image.Save(stream, format);
stream.Position = 0;
return stream;
}
用法:
var outputStream = gifStream.ConvertImage(ImageFormat.Png);
これはこの問題の最も簡単な解決策です。ほとんどの開発者はそれを省略します:3 – iceDragon
はこれを試してみてください:それはプラットフォームに依存し
public static class BitmapExtension
{
public static void Save(this Bitmap bitmap, String fileName, ImageFormat imageFormat, long quality = 75L)
{
using (var encoderParameters = new EncoderParameters(1))
using (encoderParameters.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality))
{
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
bitmap.Save(fileName, codecs.Single(codec => codec.FormatID == imageFormat.Guid), encoderParameters);
}
}
}
...
Bitmap bitmap = new Bitmap("myImage.bmp");
bitmap.Save("myImage.jpg", ImageFormat.Jpeg, 50L);
- 1. tiffをjpg形式に変換する
- 2. ASP.Netで画像をどのような形式からJPG形式に変換するには?
- 3. JPG画像をPNGに変換
- 4. html形式でPDFファイルをJPG形式に変換する - PHP/HTML
- 5. SVGファイルを他の画像形式に変換するには
- 6. C#ファイル形式が.jpgの場合、画像を画像ボックスに表示する方法
- 7. Xamarin:Xamarin.formsで画像をPdf形式に変換する
- 8. Vaadin画像をPDF形式に変換して表示する
- 9. 画像を16進数の形式に変換する
- 10. アンドロイドでJPEG/PNG画像をTIFF画像形式に変換するOS
- 11. は、私はその形式.JPGあるローカルリソースから画像をロードしようとしていた。JPG形式
- 12. webp fortmatの画像をFirefoxブラウザのjpg形式に変換するためのjavacript code
- 13. ImageMagickの - JPGにPSDを変換する - 空白の画像に
- 14. jimpでpngからjpgに画像を変換するには?
- 15. 画像の形式をPythonで変換する
- 16. 画像をbase64に変換し、JSON形式でサーバーにアップロード
- 17. paperclip - tiff画像をjpgまたはpngに変換する
- 18. ServiceConfigurationError in .jp2画像ファイルを.jpgに変換する
- 19. PDFバイト配列をjpg画像に変換する(JAVAプロジェクト)
- 20. 3バイトアスキー署名形式を画像に変換
- 21. PyQt4 jpeg/jpgサポートされていない画像形式
- 22. すべての画像をjpgに変換
- 23. ゼロパッドの名前変更。画像(2).jpg - >画像(002).jpg
- 24. UE4カメラからJPG形式の画像を取得する方法は?
- 25. ギャラリーからの画像を.jpgファイル形式で取得する方法は?
- 26. 画像をテキスト形式に変換するiphone Classはありますか?
- 27. ImageJ - ファイルを保存せずに画像形式を変換する
- 28. cordova-plugin-cameraを使用してURI画像をbase64形式に変換する
- 29. linux osの文書形式をjpgファイルに変換する方法
- 30. 文字列を画像形式にプログラムで変換する方法
- ウェブ、アプリケーション、モバイルまたはYOUT写真カード:) –