large image loading - RealWorld forums
large image loading - RealWorld forums
RealWorld Graphics logo    
Log-in or register.   
IndexSoftwareGalleryTutorialsForumsUsers

Software support
Graphic design
Using graphics
Non-English
General chat
Links
Is the speed of this web adequate?

I wish there were ...

Select background

Forum index » Using graphics » large image loading
image loading
Anonymous
on March 31st 2008

Hi

I want to show a large image in C#,but I recieve Out of memory error.

how can I read the smaller block of my picture and show it.I work with GDI .

here is my code .I try to load one part of my picture but at last line of my code I recieve this error.my image is 20MB jpg with 12000*14000

Image MapImage = null;
MapImage1 = Image.FromFile("filename.jpg");
Rectangle recDes1 = new Rectangle(0,  0, 1000, 1000);
Rectangle recSrc1 = new Rectangle(0, 0, 1000, 1000);
gr.DrawImage(MapImage1, recDes1, recSrc1, GraphicsUnit.Pixel);

by regards

Vlasta
on March 31st 2008

Hm, the unpacked image would require more than 0.5 GB of memory. Given the inefficiency of managed code I am not wondering you are getting these memory errors. I doubt GDI+ would be able to read only a part of the image, it is a rather special request. Maybe a some specialized imaging library would help. Or try 64bit environment if it is possible.

Anonymous
on March 31st 2008

hi

the second line of top code was loaded into memory and I use this code to refrence each slice of picture to one bitmap object.and with this sharing of memory to some bitmap object I can show this picture.but I dont want to use .5GB of my memory.

Anonymous
on March 31st 2008
img1= Image.FromFile("filename.jpg");

for (int f = 1; f <= 6; f  )
{
    ColSelect = 0;

    for (int ff = 1; ff <= 6;ff  )
    {
        imgcount  ;

        bmpData = img1.LockBits(new Rectangle(ColSelect, RowSelect, WidthPerCol, HeightPerRow),ImageLockMode.ReadWrite ,img1.PixelFormat );
        ptr[f-1,ff-1] = bmpData.Scan0;
        strd[f-1,ff-1]=bmpData.Stride;

        img1.UnlockBits(bmpData);

        img2[f - 1, ff - 1] = new Bitmap(WidthPerCol,HeightPerRow,strd[f-1,ff-1] ,img1.PixelFormat ,ptr[f-1,ff-1]);

        ColSelect  = WidthPerCol;
    }
    RowSelect  = HeightPerRow;
}
Page views: 122       Posts: 4      
You cannot reply to this topic.

Copyright © 2005-2009 RealWorld Graphics. Contact: info@rw-designer.com.