Avatar billede prec Nybegynder
03. februar 2006 - 14:45 Der er 2 kommentarer og
1 løsning

Forbedring af kvalitet af billede gemt med Image.Save

Jeg har lavet en aspx fil som skal udskrive et Gif billede (det skal være gif pga noget af billedet er transparant)

Dette gøres med
img.Save(Response.OutputStream, ImageFormat.Gif);

Men resultatet bliver et gif billede af meget dårlig kvalitet, og det transparante bliver sort. Er der nogen der ved hvordan jeg kan sætte kvaliteten af billedet op?
Avatar billede dr_chaos Nybegynder
03. februar 2006 - 15:18 #1
du kan bruge noget i denne stil:
private void test()
        {
            Bitmap b = new Bitmap("c:\\winxp.gif");
            Encoder myEncoder;
            EncoderParameter myEncoderParameter;
            EncoderParameters myEncoderParameters;
            ImageCodecInfo myImageCodecInfo;
            myEncoder = Encoder.Quality;
            myEncoderParameters = new EncoderParameters(1);
            myEncoderParameter = new EncoderParameter(myEncoder, 200L);
            myEncoderParameters.Param[0] = myEncoderParameter;
            myImageCodecInfo = GetEncoderInfo("image/jpeg");
            b.Save("c:\\test1.jpg", myImageCodecInfo, myEncoderParameters);
        }
        private static ImageCodecInfo GetEncoderInfo(String mimeType)
        {
            int j;
            ImageCodecInfo[] encoders;
            encoders = ImageCodecInfo.GetImageEncoders();
            for (j = 0; j < encoders.Length; ++j)
            {
                if (encoders[j].MimeType == mimeType)
                    return encoders[j];
            }
            return null;
        }

du ændre bare 200L til et mindre tal for at få en lavere kvalitet.
Avatar billede prec Nybegynder
03. februar 2006 - 15:46 #2
Jamen, der gemmer du jo til Jpeg... Som sagt SKAL det være til Gif

Jeg har i mellemtiden fundet ud af at det har noget at gøre med en form for bug i GDI+ hvor den vælger en pallette med for få farver, men har problemer med at få det til at virke med transparant.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/colorquant.asp
Avatar billede prec Nybegynder
03. februar 2006 - 16:40 #3
Jeg fik det nu til at virke med OctreeQuantizer fra det tidligere link, der var en fejl i den klasse, hvor den tilføjede en transparant farve til palletten med ARGB = 0,0,0,0 hvor det skal være 0,255,255,255. Efter jeg rettede det virker det transparante.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester