Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

problem with bitmap

Status
Not open for further replies.

fheyn

Programmer
Mar 22, 2001
198
DE
hi,
i need some help in graphics display of bitmap.
i load a bitmap from file, resize it and display it. when form is closed the bitmap is save to a config-file as byte[].
when i load the bitmap from config-file i get the following exception :
"rotatedImage.Palette" caused excetion of type "System.Runtime.InteropServices.ExternalException",ErrorCode = -2147467259
the error occurs at line rotatedImage.RotateFlip(rotateFlipType); (rotateFlipType = RotateNoneFlipNone) in resizeImage(..)
with this line removed no error occurs and the bitmap is displayed

// **********************************************************************************
public static Image resizeImage(Image image, int newwidth, int newheight, RotateFlipType rotateFlipType)
// **********************************************************************************
{
PixelFormat pxlfrmt = image.PixelFormat;
// clone the Image instance, since we don't want to resize the original Image instance
Image rotatedImage = (Image)image.Clone();

rotatedImage.RotateFlip(rotateFlipType);

Size newSize = CalculateResizedDimensions(rotatedImage, newwidth, newheight);
Bitmap resizedImage = new Bitmap(newSize.Width, newSize.Height, pxlfrmt);
resizedImage.SetResolution(72, 72);
using (var graphics = Graphics.FromImage(resizedImage))
{
// set parameters to create a high-quality thumbnail
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphics.SmoothingMode = SmoothingMode.AntiAlias;
graphics.CompositingQuality = CompositingQuality.HighQuality;
graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
ImageAttributes attribute = new ImageAttributes();
attribute.SetWrapMode(WrapMode.TileFlipXY);

Rectangle rect = new Rectangle(new Point(0, 0), newSize);
graphics.DrawImage(rotatedImage,rect,0,0,rotatedImage.Width, rotatedImage.Height, GraphicsUnit.Pixel, attribute);
}
return resizedImage;
}

any suggestions ? be free to ask for more code

thanks in advance
franz

 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top