azure - how to compress/resize image in windows phone 8 -
i creating project in want compress image can uploaded on windows azure , later can retrieved windows azure application.so can please me how can that. using bitmapimage right . follwoing code using upload image azure
void photochoosertask_completed(object sender, photoresult e) {
if (e.taskresult == taskresult.ok) { bitmapimage bitmap = new bitmapimage(); bitmap.setsource(e.chosenphoto); writeablebitmap wb = new writeablebitmap(bitmap); using (memorystream stream = new memorystream()) { wb.savejpeg(stream, wb.pixelwidth, wb.pixelheight, 0, 0); azurestorage storage = new azurestorage(); storage.account = **azure account**; storage.blobendpoint = **azure end point**; storage.key = **azure key**; string filename = uid; bool error = false; if (!error) { storage.putblob("workerimages", filename, imagebytes, error); } else { messagebox.show("error uploading new image."); } } } }
be care using writeablebitmap may run out of memory if resizing lot of images. if have few, pass size want saved savejpeg method. make sure use value higher 0 quality (last param of savejpeg)
var width = wb.pixelwidth/4; var height = wb.pixelheight/4; using (memorystream stream = new memorystream()) { wb.savejpeg(stream, width, height, 0, 100); ... ... }
you can use jpegrenderer nokia imaging sdk resize image.
var width = wb.pixelwidth/4; var height = wb.pixelheight/4; using (var imageprovider = new streamimagesource(e.chosenphoto)) { ifiltereffect effect = new filtereffect(imageprovider); // resize dimensions windows.foundation.size desiredsize = new windows.foundation.size(width, height); using (var renderer = new jpegrenderer(effect)) { renderer.outputoption = outputoption.preserveaspectratio; // set new size of image renderer.size = desiredsize; ibuffer buffer = await renderer.renderasync(); return buffer; } }
Comments
Post a Comment