C#サムネイルがはっきりしない問題の解決策を生成!
2884 ワード
以前、ネット上でサムネイルを生成するコードを探して、変更して直接使いました.問題が来て、比例の略図を待つ時いつも左、上の辺の線が1画素の白い辺があることを発見して、指導者は喜んでいないで、それでは私達は直しましょう.画像を拡大してみると、それはグラデーションの色のようで、めまいがして、このような機能のリーダーはきっと受け入れられないに違いありません.画像の画質が変わりました.ネットで探してみると、解決策が来て、とても多いです.私は抜粋して、みんなは参考にして、苦労して検索しました!
赤い部分が問題を解決する鍵です.
仕事が終わる!
//
var destRect = new Size(Convert.ToInt32(w), Convert.ToInt32(h));//
var srcRect = new Size(Convert.ToInt32(sw), Convert.ToInt32(sh));// image
var bitmap = new Bitmap(image, destRect);
//
var g = Graphics.FromImage(bitmap);
//
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
// ,
g.SmoothingMode = SmoothingMode.HighQuality;
g.CompositingQuality = CompositingQuality.HighQuality;
//
g.Clear(Color.White);
//
var imgAtt = new ImageAttributes();
imgAtt.SetWrapMode(WrapMode.TileFlipXY);
//
g.DrawImage(image, new Rectangle(0, 0, destRect.Width, destRect.Height), x, y, srcRect.Width, srcRect.Height,
GraphicsUnit.Pixel, imgAtt);
//
bitmap.Save(fileFullPath, GetImageFormat(Path.GetExtension(fileFullPath)));
g.Dispose();
bitmap.Dispose();
赤い部分が問題を解決する鍵です.
仕事が終わる!