1. #1
    SMa's Avatar
    Registered
    05/11/03
    Location
    ?
    Posts
    5,782
    iTrader
    12 (100%)
    Mentioned
    0 Post(s)

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

    ik heb een probleem met volgend stukje code (sterk vereenvoudigd hier)
    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.
    Hoe zou ik kunnen opslaan zoals in de laatste regel, dus met quality-instelling?


    Ik heb er al uren op zitten zoeken
    thx!

    (btw: dit is code voor een persoonlijk project)
    no votes  

  2. #2
    Albireo's Avatar
    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  

  3. #3
    SMa's Avatar
    Registered
    05/11/03
    Location
    ?
    Posts
    5,782
    iTrader
    12 (100%)
    Mentioned
    0 Post(s)
    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  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in