Seit Snow Leopard liefert QTKit jetzt farbkorrigierte Bilddaten aus Funktionen wie QTMovies frameImageAtTime: withAttributes: error :. Bei einer nicht komprimierten AVI-Datei werden in Snow Leopard vs. Leopard dieselben Bilddaten mit größeren Pixelwerten angezeigt.
Momentan benutze ich frameImageAtTime, um ein NSMage zu erhalten, dann frage nach der tiffRepresentation dieses Bildes. Danach sind die Pixelwerte in Snow Leopard etwas höher.
Zum Beispiel eine Datei mit dem folgenden Pixelwert in Leopard:
%Vor%Hat jetzt einen Pixelwert wie:
%Vor%Gibt es eine Möglichkeit, einen QTMovie nach Videoframes zu fragen, die nicht farbkorrigiert sind? Sollte ich stattdessen nach einem CGImageRef, CImage oder CVPixelBufferRef fragen? Gibt es eine Möglichkeit, die Farbkorrektur vor dem Einlesen der Videodateien komplett zu deaktivieren?
Ich habe versucht, dieses Problem zu umgehen, indem ich in NSBitmapImageRep mit NSCalibratedColroSpace zeichne, aber das bringt nur meinen Teil des Weges dorthin:
%Vor%Dies führt zurück in einen 'nicht farbkorrigierten' Farbraum, aber die Farbwerte stimmen NICHT genau mit denen überein, die in den Unkomprimierten AVI-Dateien gespeichert sind, mit denen wir testen. Auch das ist viel weniger effizient, weil es von RGB konvertiert - & gt; "Gerät RGB" - & gt; RGB.
Außerdem arbeite ich in einer 64-Bit-Anwendung, so dass das Ablegen auf die Quicktime-C-API keine Option ist.
Danke für Ihre Hilfe.
Das ist es, wogegen Sie stoßen: Ссылка Auch hier in Bezug auf QT beschrieben: Ссылка
Es sollte ein Opt-Out-Flag für ColorSync geben (das automatisch und leise ist), aber da ColorSync zur "Carbon-iferous Ära" zurückkehrt, gibt es eine Menge Verwirrung darüber, wie man es von einem 64- deaktivieren kann. Bit-App. Es kann sogar existieren und nur keine Dokumentation haben. Aber selbst Adobe hat es nicht herausgefunden AFAIK (64-Bit-Photoshop für OS X ???) [EDIT: Wirklich vielleicht haben sie mit CS5, oder einen Workaround gefunden ... also wenn Sie irgendwelche Freunde haben, die dort arbeiten, können sie vielleicht eine Ressource sein;) Allerdings denke ich, dass sogar ihre Farben auf 64 Bit OS X gegenüber Windows oder 32 Bit anders sein können.
Der erste Link zeigt an, wie ein Gamma-Wert von 1,8 systemweit und nicht programmatisch erzwungen wird. Einfach darauf hinweisen - es ist wahrscheinlich nur begrenzt für Ihre Anwendung, aber gut zu wissen.
Der übliche Weg zum Deaktivieren von colorsync ist / war
%Vor%Aber ich weiß nicht, ob das in einer 64-Bit-Anwendung funktionieren wird (ziemlich sicher, dass es nicht funktioniert). Tatsächlich sind viele Dinge, die mit ColorSync zusammenhängen, in 64-Bit schwieriger, vielleicht noch nicht möglich. Suchen Sie einfach "site: apple.com colorsync 64 bit".
Wenn ich etwas besseres finde, bearbeite ich meine Antwort. Ich dachte, das würde dir helfen, den Feind sozusagen zu kennen.
Eine andere Bearbeitung: (Re) Das Markieren Ihrer Videos könnte dieses Problem ebenfalls mildern oder beseitigen, da ColorSync unmarkierte Videos auf eine bestimmte Art und Weise behandelt (siehe Links) und je nach den Tags anders arbeitet. Wie ist das Farbprofil der Videos? Versuchen Sie sRGB vielleicht?