Archief - [PROG][C#] Hulp met parameters gevraagd, ivm afbeeldingen saven

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

SMa

Legacy Member
ik heb een probleem met volgend stukje code (sterk vereenvoudigd hier)
Code:
[COLOR="Gray"]// vooraf geinitialiseerd: byte quality, int width, int height, Bitmap originalBitmap, string[] imagePaths[/COLOR]

[COLOR="Gray"]// Haal codecs op, kijkend naar de originele extensie[/COLOR]
ImageCodecInfo ici = GetEncoder(Path.GetExtension(imagePaths[i]));
[COLOR="Gray"]// Resize[/COLOR]
Image resImage = new Bitmap(originalBitmap, width, height);
[COLOR="DimGray"]// EncoderParameters instellen[/COLOR]
EncoderParameters encParam = new EncoderParameters(1);
encParam.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
[COLOR="Gray"]// Saven van image[/COLOR]
[COLOR="Gray"]// zonder quality-instellingen[/COLOR]
resImage.Save(fileSavePath, ImageFormat.Jpeg);
[COLOR="Gray"]// met quality-instellingen[/COLOR]
resImage.Save(fileSavePath, ici, encParam); [COLOR="Red"]<- System.ArgumentException: Parameter is not valid.[/COLOR]
Hoe zou ik kunnen opslaan zoals in de laatste regel, dus met quality-instelling?


Ik heb er al uren op zitten zoeken :help:
thx!

(btw: dit is code voor een persoonlijk project)

Albireo

Legacy Member
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)

SMa

Legacy Member
:$ 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!!
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan