Die Rust-Datei des Beispiels „Das eingebettete ICC-Profil“.
Das ICC-Profil, das die Bibliothek in eine PDF/A-Datei einbettet.
Rust
35 Zeilen
Wofür dieses Beispiel da ist
Dieser Eintrag ist ein Download, keine Seite zum Ansehen. Eine zur Archivierung bestimmte Datei muss ein Farbprofil tragen, das das Gerät beschreibt, für das ihre Farben bestimmt sind, und die übliche Antwort ist, das eines anderen mitzuliefern: hundert Kilobyte oder mehr, mit einer angehängten Lizenz, in jedes Dokument kopiert, das Sie je erzeugen.
Was dieses Beispiel zeigt
Ein vollständiges sRGB-Profil, von der Bibliothek erzeugt, nicht mit ihr ausgeliefert.
Das Profil, das jede PDF/A-Datei erhält, wenn keines genannt wird.
Ein Download statt einer Seite: Untersuchen Sie ihn mit Spezialsoftware. Allein die Bibliothek schreibt ihn, und keine Anfrage an den Server liefert ihn zurück.
//! Writes the ICC profile the library embeds in a PDF/A file.//!//! Our own tests can only say the bytes look right to us. Whether they are an//! ICC profile — and whether that profile is really sRGB rather than something//! wearing its name — is a question for a colour engine, which is what//! `scripts/check_icc_profile.py` uses this for.//!//! Usage: `cargo run --example write_icc -- tmp/srgb.icc`usestd::env;usestd::fs;usestd::path::Path;#[path = "shared/failure.rs"]modfailure;fnmain()->std::process::ExitCode{failure::reported(run())}fnrun()->Result<(),Box<dynstd::error::Error>>{letout=env::args().nth(1).unwrap_or_else(||"tmp/srgb.icc".to_owned());letprofile=hqf_pdf::color::icc::srgb();ifletSome(parent)=Path::new(&out).parent(){fs::create_dir_all(parent)?;}fs::write(&out,&profile)?;println!("wrote {out}: {} bytes",profile.len());Ok(())}