Entwickler-Ecke
Multimedia / Grafik - CMYK JPG in RGB JPG
crauhut - Mi 10.09.08 11:54
Titel: CMYK JPG in RGB JPG
Hallo,
ist es irgendwie möglich ein JPG so umzuwandeln ?
Hoffe ihr habt da ein paar Tips,
Danke,
crauhut
AXMD - Mi 10.09.08 12:55
@Christian: Da muss ich sowohl dir als auch Wikipedia widersprechen. JPEG macht keinerlei Angaben darüber welchem Farbraum die einzelnen Planes angehören - das kann YCbCr, aber auch RGB oder sogar CMYK sein. Adobe nutzt zur Signalisierung des CYMK-Farbraums spezielle Marker - ohne solche Marker kann man allerdings nicht zuverlässig unterscheiden, um welchen Farbraum es sich handelt.
AXMD
crauhut - Mi 10.09.08 20:07
Dann mal genauer zu meinem Problem:
Hab mit Adobe Photoshop Fotos mit CMYK als JPG abgespeichert und will diese JPGs auf einer Website anzeigen. Das funktioniert nur wenn ich sie als RGB abspeichere.
Diese Änderung möchte ich jetzt gerne mit meinem Programm durchführen
mfg,
crauhut
AXMD - Mi 10.09.08 20:37
Warum speicherst du die Dateien nicht direkt als RGB aus Photoshop heraus? Soweit ich weiß kann man das einstellen. Wenn du das bereits gespeicherte neu speicherst verlierst du zwangsweise Qualität.
AXMD
crauhut - Mi 10.09.08 20:48
toller hinweis, ist mir schon klar das das so geht :)
Hintergrund ist folgender: im Internet soll unsere Produktdatenbank aktualisiert werden. Dazu werden mehrere tausend Bilder benutzt und abgeglichen. Und wenn es jetzt neue Bilder gibt, die als Ausgangsfarbraum (aufgrund des CMYK Fabraums für Druckdaten) CMYK haben, wir oft vergessen, beim JPG speichern RGB zu wählen. Und nun möchte ich, bevor ich eine neue Datei blind hochladen (und diese nicht angezeigt werden kann), auf CMYK überprüfen und ggfs. umwandeln.
AXMD - Mi 10.09.08 20:54
Soweit ich weiß speichert Adobe die Information in APP14-Markern. Die libjpeg kann die beispielsweise auswerten. Entweder du parst das händisch oder du schaust dir mal den Code der Library an. Vielleicht hilft dir das weiter. Das selbst zu machen ist allerdings nicht ganz trivial.
AXMD
Christian S. - Mi 10.09.08 21:17
Also, die WinForms-Klassen bekommen das anscheinend nicht hin. Es ist mir aber in WPF gelungen, das bietet ja auch viele neue Nicht-GUI-Klassen :-)
Oxygene-Quelltext:
1: 2: 3: 4: 5: 6: 7: 8:
| var src := new BitmapImage(new Uri(cmykFilename, UriKind.Absolute));
var enc := new JpegBitmapEncoder(); var bf := BitmapFrame.Create(src);
enc.Frames.Add(bf); using f := File.Create(rgbFilename) do enc.Save(f); |
Ist zwar Oxygene, aber in C# geht's bis auf kleine Syntax-Unterschiede genauso.
crauhut - Do 11.09.08 09:16
Also die Umwandlung hab ich jetzt so realisiert:
Zitat: |
Bitmap src = new Bitmap("D:\\test.jpg");
src.Save("D:\\test2.bmp",ImageFormat.Bmp);
Bitmap dest = new Bitmap("D:\\test2.bmp");
dest.Save("D:\\test2.jpg", ImageFormat.Jpeg); |
nicht besonders elegant, aber hauptsache es funktioniert :)
Aber wie bekomme ich jetzt die Abfrage auf cmyk hin ? Hab leider nur net 2.0 zur verfügung
mfg,
crauhut
AXMD - Do 11.09.08 09:18
crauhut hat folgendes geschrieben: |
Aber wie bekomme ich jetzt die Abfrage auf cmyk hin ? |
Die Sache mit den Markern habe ich oben beschrieben. Für Details wie gesagt die libjpeg oder den JPEG-Standard konsultieren. .NET-seitig gibt es meines Wissens nach keine Möglichkeit, das abzufragen.
AXMD
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!