Я пытаюсь изменить масштаб изображения на лету с помощью c # .net.Казалось, что все работает правильно, но при ближайшем рассмотрении цвета выглядят неправильно.
Код выглядит довольно простым и хорошо масштабируется, но почему исходное изображение выглядит более розовым, чем цветмасштабированное изображение?
using (Bitmap origBitmap = new Bitmap("my_picture.jpg"))
{
using (Bitmap outputImage = new Bitmap(1024, 768, origBitmap.PixelFormat))
{
outputImage.SetResolution(origBitmap.HorizontalResolution, origBitmap.VerticalResolution);
using (Graphics g = Graphics.FromImage(outputImage))
{
g.Clear(Color.Black);
g.CompositingMode = CompositingMode.SourceCopy;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.DrawImage(
origBitmap,
new Rectangle(0, 0, 1024, 768),
new Rectangle(0, 0, origBitmap.Width, origBitmap.Height),
GraphicsUnit.Pixel
);
context.Response.ContentType = "image/jpeg";
outputImage.Save(context.Response.OutputStream, ImageFormat.Jpeg);
}
}
}
В приложении вы можете увидеть разницу в цветах.Надеюсь, мне не хватает чего-то простого?
picture_scaling_issues.jpg