Gdiplus::Image::SaveFile - performance improvements

Gdiplus::Image::SaveFile - performance improvements

Post by dominolo » Thu, 02 Jul 2009 00:14:20


I need to use Gdiplus to save images as jpegs. Image sizes are
~3000x500x24bit and the framerate of saving is ~25FPS. I use native
method Gdiplus::Image::SaveFile. I wonder how can I improve it - has
anybody tested this method with IStream interface? Which IStream
interface implementation to choose for performance improvements? Is
gdiplus jpg encoder fast enough for my needs?


1. How to check if Gdiplus::Image and Gdiplus::Graphics are invalid?

2. Help for improving the performance of GDIPlus Bitmap drawing

Hi Gurus,

Currently I encouter a performance issue in CSharp PictureBox with
GDIPlus rendering, my dataset is 78 curves, 512 points in each curve.

I enabled the doublebuffer in WinForm, first use Graphics::DrawLines
put all the curves in a memory bitmap, then draw the memory bitmap
with the OnPaint graphics.

However the bottleneck is not the DrawImage in the OnPaint function
which I found out many complains in Google search, but the DrawLines.
The cpu usage is:
1. DrawLines add up to 10%.
2. DrawImage 3%.

Besides, I enabled the double buffer by
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.DoubleBuffer, true);
in the PictureBox.

3. Gdiplus::Bitmap --> Drawing::Image

4. Problem with Gdiplus::Bitmap::Clone function - degrading image colour depth

5. GDIPlus image stangeness

6. BUG: Gdiplus::Image::FromStream() leaking references in Unmanaged C++ applications

7. How can I create a GdiPlus::Image from a (WMF) stream?

8. Image thumbnail in pocket pc using gdiplus

9. Gdiplus::Image

10. using Gdiplus::Image without locking the source file

11. Problems saving Gdiplus::Image to a Stream

12. How to read Image from stream using GDIplus?

13. He;lp, Need Performance Improvement Ideas

14. Error handling with performance improvement