Ik heb een aantal png bestanden in verschillend formaat:
Format8bppIndexed
Format32bppArgb
De 8Bit plaatjes hebben een witte achtergrond en de andere een zwarte.
Op de plaatjes staan maar een paar gekleurde lijnen.
Ik probeer van deze plaatjes transparante plaatjes te maken, maar dat lukt niet zo goed.
Ik ben al een poosje aan het zoeken en heb al veel voorbeeldcode uitgeprobeerd, maar zonder succes.
Hier is mijn laatste creatie:
Het nieuwe bestand wordt wel fors groter in bestandgrootte, tot wel een factor 10, maar geen transparantie.
Als ik het origineel in IrFanView laat en vervolgens opsla en de transparante kleur opgeef, gaat het wel goed. Dus mijn png is wel OK, maar mijn code niet
Iemand een idee?
Format8bppIndexed
Format32bppArgb
De 8Bit plaatjes hebben een witte achtergrond en de andere een zwarte.
Op de plaatjes staan maar een paar gekleurde lijnen.
Ik probeer van deze plaatjes transparante plaatjes te maken, maar dat lukt niet zo goed.
Ik ben al een poosje aan het zoeken en heb al veel voorbeeldcode uitgeprobeerd, maar zonder succes.
Hier is mijn laatste creatie:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| private static void MakeTransparent(string inputFileName, string outputFileName) { Bitmap bmpIn = (Bitmap)Bitmap.FromFile(inputFileName); Bitmap converted = new Bitmap(bmpIn.Width, bmpIn.Height, PixelFormat.Format16bppArgb1555); converted.MakeTransparent(converted.GetPixel(0, 0)); using (Graphics g = Graphics.FromImage(converted)) { // Prevent DPI conversion g.PageUnit = GraphicsUnit.Pixel; // Draw the image g.DrawImageUnscaled(converted, 0, 0); g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality; } converted.Save(outputFileName, ImageFormat.Png); converted.Dispose(); bmpIn.Dispose(); } |
Het nieuwe bestand wordt wel fors groter in bestandgrootte, tot wel een factor 10, maar geen transparantie.
Als ik het origineel in IrFanView laat en vervolgens opsla en de transparante kleur opgeef, gaat het wel goed. Dus mijn png is wel OK, maar mijn code niet
Iemand een idee?