C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: Jpegロスレス回転時の解像度情報欠落


(過去ログ 111 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■66140 / inTopicNo.1)  Jpegロスレス回転時の解像度情報欠落
  
□投稿者/ TD (1回)-(2013/04/03(Wed) 12:31:34)

分類:[C#] 

JPEGファイルを読み込み、ロスレス回転を行い再度JPEGファイルとして保存する処理を実装しております。
本処理の実行時に、特定の環境にて画像ファイル保存時に解像度情報が保存されないという事象が発生します。

※.NetFrameworkは3.5
※特定の端末:Windows7 Windows8 
 VistaとXPでは発生していない(.NetはSP1適用済み)

本件においての見解・回避策をご教授頂けると助かります。

以下再現可能なソースコードとなります
※ここでは単純化を図るために180回転固定のコードとしておきます

public class JpegLosslessRotator
{
private ImageCodecInfo codecInfo;
private EncoderParameters encParms;

public JpegLosslessRotator()
{
this.codecInfo = GetEncoderInfo("image/jpeg");
this.encParms = new EncoderParameters(1);
this.encParms.Param[0] = new EncoderParameter(Encoder.Transformation, (long)EncoderValue.TransformRotate180);
}

public void Rotate(string srcFilePath, string destFilePath)
{

File.Delete(destFilePath);

using (var fs = File.OpenRead(srcFilePath))
{
using (var pic = Image.FromStream(fs, false, false))
{
pic.Save(destFilePath, this.codecInfo, this.encParms);
}
}

}

private ImageCodecInfo GetEncoderInfo(String mimeType)
{
var encoders = ImageCodecInfo.GetImageEncoders();

for (int j = 0; j < encoders.Length; ++j)
{
if (encoders[j].MimeType == mimeType)
{
return encoders[j];
}

} 

return null;
}
}

引用返信 編集キー/
■66141 / inTopicNo.2)  Re[1]: Jpegロスレス回転時の解像度情報欠落
□投稿者/ shu (259回)-(2013/04/03(Wed) 14:17:42)
No66140 (TD さん) に返信

Windows7 Unltimate 64ビット環境で提示コードを使用して実行してみましたが、解像度情報の
欠落はありませんでした。

別の所に原因がないか調べられた方がよいかと思います。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -