KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am supposed to write a program that gets some PNG images from the user, does some simple edits like rotation and saves them inside a JAR file so that it can use the images as resources. The problem is when I open, say an 80kb image and then save it with C#, I get an image with the same quality but for 130kb space. And because it has to go inside a J2ME jar file I really need lower sizes, at least the original size. I tried the code below but later found out that it only works for Jpeg images. ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders(); int j = 0; for (j = 0; j < codecs.Length; j++) { if (codecs[j].MimeType == "image/png") break; } EncoderParameter ratio = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 10L); EncoderParameters CodecParams = new EncoderParameters(1); CodecParams.Param[0] = ratio; Image im; im = pictureBox1.Image; im.Save(address , codecs[j], CodecParams); This is where the image is loaded to a picture box: private void pictureBox1_DoubleClick(object sender, EventArgs e) { if (openFileDialog1.ShowDialog() == DialogResult.OK) { string address = openFileDialog1.FileName; address.Replace("\\", "\\\\"); Image im = Image.FromFile(address); pictureBox1.Image = im; } } And this is where it's being saved back with no edits: private void generateToolStripMenuItem_Click(object sender, EventArgs e) { if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) { ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders(); int j = 0; for (j = 0; j < codecs.Length; j++)
Tags (comma-separated)
Save Edits
Cancel