c# - My image is not compressing -


loading code filesystem:

system.drawing.image image = system.drawing.image.fromfile(<location of original image>););     

loading code browser request:

var memorystream = new memorystream(); using (memorystream) {     system.web.httpcontext.current.request.files[upload].inputstream.copyto(memorystream);     memorystream.toarray(); }  byte[] bytes = memorystream.getbuffer();      // image server system.drawing.image image = new system.drawing.bitmap( system.web.httpcontext.current.request.files[upload].inputstream ); 

resize image call:

system.drawing.image image = this.resizeimage(     image,      originalimagepath,      imagesizetype.original,      null,      null) 

save image call:

image.save(<location save>); 

the code doesn't compress image:

private system.drawing.image resizeimage(system.drawing.image image, string filepath, string sizetype, int? _width, int? height ) {     ...     system.drawing.bitmap b = new system.drawing.bitmap(width, resizeheight);     b.setresolution(72, 72);     system.drawing.graphics g = system.drawing.graphics.fromimage((system.drawing.image)b);     g.compositingquality = compositingquality.highspeed;     //g.interpolationmode = interpolationmode.highqualitybicubic;     g.interpolationmode = interpolationmode.low;     g.smoothingmode = smoothingmode.highspeed;     g.drawimage(image, 0, 0, width, resizeheight);     g.dispose();     return (system.drawing.image)b; } 

no matter image, when saves, saves @ high kb.

for example... jpg of 1024 x 768 @ 300kb becomes 600 x 400 @ 800kb

what doing wrong?

as magnus rightly said, drawing canvas makes no difference size... of file...

it save file part being noob... should be:

    private imagecodecinfo getencoderinfo(string mimetype)     {         // image codecs image formats         imagecodecinfo[] codecs = imagecodecinfo.getimageencoders();          // find correct image codec         (int = 0; < codecs.length; i++)             if (codecs[i].mimetype == mimetype)                 return codecs[i];         return null;     }   ... if( mimetype.tolower() == "image/jpeg") {     imagecodecinfo jpgencoder = this.getencoderinfo("image/jpeg")      system.drawing.imaging.encoder myencoder = system.drawing.imaging.encoder.quality;      encoderparameters myencoderparameters = new encoderparameters(1);     encoderparameter myencoderparameter = new encoderparameter(myencoder, 80l);     myencoderparameters.param[0] = myencoderparameter;      image.save(systemfilepath, jpgencoder, myencoderparameters); } else {     image.save(systemfilepath); } 

Comments

Popular posts from this blog

Email notification in google apps script -

c++ - Difference between pre and post decrement in recursive function argument -

javascript - IE11 incompatibility with jQuery's 'readonly'? -