-
09-10-2007, 02:08 #1
[PROG][C#] Hulp met parameters gevraagd, ivm afbeeldingen saven
ik heb een probleem met volgend stukje code (sterk vereenvoudigd hier)
Hoe zou ik kunnen opslaan zoals in de laatste regel, dus met quality-instelling?Code:// vooraf geinitialiseerd: byte quality, int width, int height, Bitmap originalBitmap, string[] imagePaths // Haal codecs op, kijkend naar de originele extensie ImageCodecInfo ici = GetEncoder(Path.GetExtension(imagePaths[i])); // Resize Image resImage = new Bitmap(originalBitmap, width, height); // EncoderParameters instellen EncoderParameters encParam = new EncoderParameters(1); encParam.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality); // Saven van image // zonder quality-instellingen resImage.Save(fileSavePath, ImageFormat.Jpeg); // met quality-instellingen resImage.Save(fileSavePath, ici, encParam); <- System.ArgumentException: Parameter is not valid.
Ik heb er al uren op zitten zoeken
thx!
(btw: dit is code voor een persoonlijk project)no votes
-
-
09-10-2007, 19:10 #2Member
- Registered
- 21/10/05
- Location
- Herentals
- Posts
- 1,515
- iTrader
- 5 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 2/13
verander byte quality in long quality
als ik dit gebruik dan werkt het bij mij
Code:encParam.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 85L); // <--- long ipv byte
Die quality parameter gaat van 0 tot 100 zoals in de meeste grafische toepassingen die opslaan naar JPG...
(en dat heb ik net allemaal gelezen in de MSDN library-entry voor Encoder.Quality)no votes
-
09-10-2007, 20:22 #3
Niet gezocht op Encoder.Quality, enkel op EncoderParamter.
Ook als je de overload bekijkt van new EncoderParameter(...) zie je dat byte toch toegelaten is.
En ik vind het toch maar vreemd dat ze een long gebruiken voor een getal tussen 0 en 100, terwijl dit perfect in een byte past...
Nuja, het werkt
Bedankt!!no votes
