Problem mit PNG-Bildern in C#

Arbeiten in Visual Studio 2008. Ich bin versucht zu zeichnen, auf ein PNG-Bild und speichern Sie das Bild erneut.

Ich Folgendes tun:

private Image img = Image.FromFile("file.png");
private Graphics newGraphics;

Und im Konstruktor:

newGraphics = Graphics.FromImage(img);

Gebäude der Lösung gibt keine Fehler. Wenn ich versuche es zu starten, bekomme ich diese:

Ein Graphics-Objekt kann nicht erstellt werden
aus einem Bild mit einem indizierten
pixel-format.

Ich habe nicht viel Erfahrung mit der Verwendung von Bildern in C#. Was bedeutet das und wie kann ich Abhilfe schaffen?

EDIT: debugging, Visual Studio sagt mir, dass das Bild hat eine format8bppindexed Pixel-Format.

Also, wenn ich nicht verwenden können, die Grafik Klasse, was brauche ich?

EDIT2: Nach dem Lesen diese, ich denke, es ist sicher anzunehmen, dass ich besser stick JPG-Dateien bei der Arbeit mit GDI+, no?

EDIT3: meine mit-Aussagen:

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;
  • Viel Glück mit dieser Methode? c-sharpcorner.com/UploadFile/rrraman/...
  • Ich benutze PNG-Dateien, die mit dem Graphics-Objekt alle Zeit. Poste einen link zu der PNG-Datei, die Sie verwenden, und wir werden sehen, was falsch mit ihm.
  • Intern GDI arbeitet mit Bitmaps, JPG ist komprimiert und nicht wirklich toll, ein komprimiertes Bild für die Arbeit mit den raw-Daten. Dein Bild ist 8bppIndexed, dies ist ein Bitmap-format, in dem die Farben gespeichert werden, die in der palette nicht die pixel-Daten. Die Grafik-Objekte können nicht ändern, werden die Pixelwerte direkt, wie, dass wird sich nicht ändern es. Sie brauchen, um zu konvertieren, um 24bppRGB
InformationsquelleAutor KdgDev | 2009-10-26
Schreibe einen Kommentar