72 lines
2.2 KiB
Markdown
72 lines
2.2 KiB
Markdown
# 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 | |