Wie zu erkennen, wenn ein jpeg enthält cmyk-Farbprofil?
Ich habe einige code, der skaliert die Bilder, die Benutzer hochladen. Es funktioniert perfekt in den meisten Situationen, aber manchmal sind Sie hochladen, die JPEG-Bilder enthalten cmyk-Daten.
Nach ein wenig googeln, es scheint, wie Sie JPEG-Bilder mit cmyk-Werten ist nicht gültig, aber da Sie in der Arbeit in windows, die Benutzer davon ausgehen, es ist ein problem mit meiner Bewerbung, damit ich in der Lage sein müssen, um mit diesen Situationen. Die Fragen:
Wie kann ich erkennen, ob das jpeg enthält cmyk-Daten?(es würde mir erlauben, um den Benutzer zu informieren, warum es nicht funktioniert).
Wie kann ich konvertieren es in eine normale jpeg?
Du musst angemeldet sein, um einen Kommentar abzugeben.
In ASP.NET Sie können bestimmen, ob es ein JPG ist gerettet mit dem CMYK-Profil mit Hilfe des Systems.Zeichnung.Imaging.ImageFlags enumeration,
http://msdn.microsoft.com/en-us/library/system.drawing.imaging.imageflags(VS.80).aspx
Lassen Sie uns sagen, Sie haben eine einfache aspx-Seite, wo ein Benutzer eine Datei hochlädt und Sie dann sagen müssen,
1) ist es ein jpg?
2) ist es mit RGB?
Ihrer aspx-vielleicht entlang der Linien von,
dann für Ihren code behind (C#), die Sie tun können,
Hoffe, das hilft!
Jpeg ist ein standard, der die Unterstützung einer beliebigen Anzahl von codierten Ebenen (Sie komprimiert sind unabhängig voneinander) in einem bitstream, also ein jpeg mit cmyk-Profil ist vollkommen gültig. Die meisten jpeg-Dateien, die codiert werden mit einer jfif-container ( http://en.wikipedia.org/wiki/JFIF ), die ursprünglich nur unterstützt Graustufen-Bilder, YCbCr, oder sRGB, aber es ist erweiterbar und Adobe haben ein benutzerdefiniertes tag zur Unterstützung von cmyk-profile.
Werfen Sie einen Blick auf diesen link für ein workaround
http://www.jroller.com/greenhorn/entry/adobe_photoshop_and_jpeg_cmyk, es ist in java, aber Sie können die Portierung einfach zu c#.