# hcie-io File import/export engine for HCIE image editor. ## Proje Bilgileri - **İsim**: hcie-io - **Versiyon**: 0.1.0 - **Editiyon**: 2021 - **Amaç**: HCIE editörü için bağımsız dosya içeri/dışarı aktarma motoru ## Özellikler - HCIE yerel proje formatı (yükleme ve kaydetme) - Raster formatlar: PNG, JPEG, WebP, BMP, GIF - Vektör grafik: SVG - Katmanlı editör formatları: Adobe Photoshop PSD, Krita KRA ## Build Komutları ```bash # Bağımlılıkları yükle cargo build # Release build cargo build --release # Testleri çalıştır cargo test # Belge oluştur cargo doc --open ``` ## AI Ajanları İçin Talimatlar Bu kütüphane kapalı kaynak projedir. AI ajanları aşağıdaki bilgilerle kütüphaneyi anlayabilir: - **Domain Model**: `Layer`, `LayerType`, `BlendMode`, `LayerData`, `LayerStyle` tipleri temel veri yapısıdır - **Modüller**: `psd_saver`, `kra_saver`, `svg_import` içe aktarma işlemlerini yapar - **Self-crate alias**: `extern crate self as hcie_protocol` ile alt modüller `hcie_protocol::` import yolu ile erişir - **FFI Katmanı**: C-ABI dışa aktarma fonksiyonları `*_c` ile bitirir (load_image_c, save_image_c, import_psd_c, export_psd_c, vs.) - **Bellek Yönetimi**: `free_buffer_c` fonksiyonu ile ayrılan belleğin serbest bırakılması gerekir - **Serileştirme**: Bincode kullanılarak katman verileri binary olarak dışa aktarılır - **Dosya Formatları**: - HCIE: Magic bytes "HCIE" + versiyon + JSON metadata + piksel verisi - PSD: Katmanları RLE sıkıştırmalı olarak dışa aktarır - KRA: ZIP arşivi içinde maindoc.xml ve katman dosyaları ## Gereksinimler ### Rust Toolchain - Rust 1.70+ (2021 edition) ### Sistem Kütüphaneleri (bazı targetlerde gerekli) - libpng, libjpeg, libtiff, libwebp, libgif ## Bağımlılıklar | Paket | Versiyon | Açıklama | |-------|----------|----------| | image | 0.25 | Raster format desteği | | psd | 0.3 | PSD dosya okuma | | zip | 2.2 | KRA arşiv işleme | | quick-xml | 0.36 | XML ayrıştırma | | serde | 1.0 | Serileştirme | | serde_json | 1.0 | JSON serileştirme | | rand | 0.8 | Rastgele ID üretimi | | resvg | 0.43 | SVG render | | usvg | 0.43 | SVG işleme | | tiny-skia | 0.11 | Vektör render | | bincode | 1.3 | Binary serileştirme |