У меня есть вопрос относительно кода, приведенного ниже. Код, который у меня ниже, успешно проходит через каталог и устанавливает пересмотр изображения меньшего размера. Однако размер файла не изменяется. Например, изображение размером 2400x1800 с размером файла 1,5 МБ будет масштабироваться до 800x600, но изображение 800x600 будет по-прежнему иметь размер файла 1,5 МБ. Я думаю, мне, возможно, придется явно сжать картинку, но я не уверен. Есть идеи?C# Простой размер изображения: размер файла не сокращается
private void Form1_Load(object sender, EventArgs e)
{
string[] files = null;
int count = 0;
files = System.IO.Directory.GetFiles(@"C:\Users\..\..\ChristmasPicsResized");
foreach (string file in files)
{
System.Drawing.Bitmap bmp = System.Drawing.Bipmap.FromFile(file);
ResizeBitmap(bmp, 807, 605).Save(
@"C:\users\..\..\TempPicHold\Pic" + count.ToString() + ".jpg");
count++;
}
}
public Bitmap ResizeBitmap(Bitmap b, int nWidth, int nHeight)
{
Bitmap result = new Bitmap(nWidth, nHeight);
using (Graphics g = Graphics.FromImage((Image)result))
g.DrawImage(b, 0, 0, nWidth, nHeight);
return result;
}
Кроме того, ознакомьтесь с [ошибками изменения размера изображения] (http://nathanaeljones.com/163/20-image-resizing-pitfalls/), которых вам следует избегать. Прямо сейчас вы пропускаете дескрипторы GDI, память и создаете некачественные изображения. –
На самом деле, почему бы не использовать библиотеку, которая позволяет избежать ошибок, с которыми вы столкнулись GDI? Библиотека http://imageresizing.net бесплатна, с открытым исходным кодом, поддерживается и хорошо документирована. И он имеет 1-строчный API, который занимает около секунды, чтобы понять. –