高さのジオロケーションファイルがあるフォルダがあります。私は目印を付けてKMLを作成します。 XML(KML)文書で問題はありませんが、画像が大きく、サムフォルダ(1/10)と小さな画像(1/4)を別々のフォルダに作成したいと思います。
イメージは4000x3000 allround 5mbですが、少量で問題はありませんが、35個以上のイメージ(デバッグ時)を持つフォルダに問題があります。 私は使い捨てのオブジェクトを使って試してみました。GC.collect
を使用して画像の精緻化のみを試みましたが、何もありません。大量の画像を持つSystem.Drawing.dllでSystem.OutOfMemoryExceptionが発生しました
私は1400以上の画像で詳しく説明するフォルダがあります...このアプリケーションを使ってこのアプリケーションを動作させることは可能ですか?
public static class MyClass_img
{
public static void ResizeImage(Image image, int width, int height, string pathImage)
{
using (var destImage = new Bitmap(width, height))
{
destImage.SetResolution(image.HorizontalResolution, image.VerticalResolution);
using (var graphics = Graphics.FromImage(destImage))
{
graphics.CompositingMode = CompositingMode.SourceCopy;
graphics.CompositingQuality = CompositingQuality.HighQuality;
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphics.SmoothingMode = SmoothingMode.HighQuality;
graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
using (var wrapMode = new ImageAttributes())
{
wrapMode.SetWrapMode(WrapMode.TileFlipXY);
var destRect = new Rectangle(0, 0, width, height);
graphics.DrawImage(image, destRect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, wrapMode);
}
}
destImage.Save(pathImage);
}
GC.Collect();
}
public static string imageReduce(Image img, string path, int percentValue, string extension, string folder)
{
var dirName = new DirectoryInfo(path).Parent.Name;
string pathImg = folder + dirName + "_" + Path.GetFileNameWithoutExtension(path) + extension;
AprItalia_img.ResizeImage(img, img.Width/percentValue, img.Height/percentValue, pathImg);
return pathImg;
}
}
'imageReduce(Image img、...)'に渡したイメージを破棄しているとは限りません。 – CodeCaster
頻繁なクリーンアップが処理圧力を上げるので、本当に必要でない限り、 'GC.Collect()'はしないでください。 –
また、あなたのシステムにはどのようなRAMがありますか? –