Resize jpg uden tab af kvalitet
HejJeg har en upload funktion som resizer mine billeder, jeg har dog et par problemer med den.
1) Billedkvaliteten bliver ringere end originalen.
2) Billedet kommer til at fylde mere end originalen.
Jeg bruger denne funktion til resize:
private Bitmap resizeFile(Bitmap b, int MaxHeight, int MaxWidth)
{
int nWidth = b.Width;
int nHeight = b.Height;
if (nHeight > MaxHeight)
{
nWidth = (int)((((double)b.Width) / ((double)b.Height)) * ((double)MaxHeight));
nHeight = MaxHeight;
}
if (nWidth > MaxWidth)
{
nWidth = MaxWidth;
nHeight = (int)((((double)b.Height) / ((double)b.Width)) * ((double)MaxWidth));
}
Bitmap bTemp = (Bitmap)b.Clone();
b = new Bitmap(nWidth, nHeight, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
double nXFactor = (double)bTemp.Width / (double)nWidth;
double nYFactor = (double)bTemp.Height / (double)nHeight;
for (int x = 0; x < b.Width; ++x)
for (int y = 0; y < b.Height; ++y)
b.SetPixel(x, y, bTemp.GetPixel((int)(Math.Floor(x * nXFactor)), (int)(Math.Floor(y * nYFactor))));
return b;
}
Nogen der har en ide til hvordan jeg kan forbedre funktionen?