Eine Anwendung, an der ich programmatisch arbeite, generiert eine PDF. Ich wurde gebeten, die Fähigkeit hinzuzufügen, den Farbraum der Bilder einzustellen, die alle gleich sein sollten. Derzeit erzeugt mein Code den Farb als die folgenden:Wie definiere ich einen Farbraum und setze ihn auf Bilder in einer PDF?
3 0 obj
<<
/N 3
/Alternate /DeviceRGB
/Length 284
/Filter [/FlateDecode]
>>
stream
8c``2ptqre``ÈÍ+)
rwRˆˆŒR`¿ÀÀÁÀÍ Ì`Ì`˜\\ààà yùy© |»ÆÀ¢/ë‚Ì”Ǹ’ŠJ€ô 6JI-Nf``4 ²³ËK
€âŒs€l‘¤l0{ˆ]äd²ùÒ!ì+ v„ýÄ.zÈþRŸf3q€Í°[email protected]ì’Ô
½Îù•E™é%
F
Ž)ùI©
Á•Å%©¹Å
žyÉùEùE‰%©)@µ÷ D!(Ä4---4Iô7A Šës 8|ÅÎ Ä ¹´¨Êdd2&ÌG˜1G‚Á)Ë„˜I/Ãþ©15C}†}s ïPo
endstream
endobj
4 0 obj
[/ICCBased 3 0 R]
endobj
Dies funktioniert, in und dass die PDF geladen werden. Allerdings, wenn ich versuchen, diese Farbraum auf ein Bild zu setzen, wie die folgenden:
23 0 obj
<<
/Type /XObject
/Subtype /Image
/Name /I5
/Length 2995953
/Width 3675
/Height 3675
/Filter /DCTDecode
/ColorSpace 4 0 R
/BitsPerComponent 8
>>
stream
Bilddaten nicht hier der Kürze halber
endstream
endobj
Dieses auf das Scannen ein anderes PDF gültig basiert sieht mit ein Bild. Wenn ich nicht versuche, den Farbraum zu ersetzen, sondern stattdessen "/ Colorspace/DeviceRGB", wird die PDF-Datei ordnungsgemäß geladen.
Ich weiß, dass ich hier etwas Wichtiges vermisse, aber ich kann nicht herausfinden, was.
Sind Sie sicher, spezielle ASCII-Zeichen zu verwenden, die eindeutig reine Binärdaten sein sollten? Oder ist dies nur eine simulierte Ansicht und die tatsächlichen Daten * ist * die richtige binäre Form eines komprimierten Farbraums? – usr2564301
Die tatsächlichen Daten sind in der Tat der komprimierte Farbraum. Wenn es die Dinge weniger verwirrend machen würde, kann ich das durch eine Notiz ersetzen, dass dort Daten nicht gezeigt werden, wie ich mit den Bilddaten gemacht habe. –
Sind Sie mit den Daten in den Daten des ICC-Datenstroms vertraut?(korrekt gelesen, codiert und die Quelle ICC ist vom Typ RGB) – dwarring