Mi sembra importante fare un capitolo sulla logica su cui si basa Imel, perchè come per tutti i programmi e le librerie è molto più importante capire il ragionamento di una libreria che imparare a memoria tutte le sue funzioni.
Imel è divisa in categorie di azioni, ogni funzione è così composta:
imel_categoria_azione (...).Le categorie disponibili sono:
image: Comprende tutte quelle azioni che hanno a che fare con l'elaborazione vera e propria dell'immagine ovvero effetti, filtri, rotazioni e molto altro. Comprende anche due funzioni particolari per questa categoria:
imel_image_new (): crea una nuova immagine vuota.
imel_image_free (): libera la memoria di qualsiasi immagine nel formato ImelImage sia essa stata creata da zero o caricata da un file già esistente.
image_fill: Comprende delle funzioni atte allo scopo di riempire un'area dell'immagine basandosi: sul canale speciale del livello, sui colori per riempirla, con un altro colore o con un altro livello.
image_new_from: Comprende tutte le funzioni che hanno a che fare con il caricamento di un'immagine già esistente.
image_save: Comprende tutte le funzioni che consentono il salvataggio dell'immagine creata sul disco.
color: Comprende le funzioni che operano solo sui colori, è raro che si abbia la necessità di usarle.
pixel: Comprende le funzioni che gestiscono un singolo pixel ( creazione, modifica, etc. ).
draw: Comprende tutte le funzioni che si occupano del disegno all'interno dell'immagine, questa categoria è particolare in quanto subisce gli effetti di due funzioni che non rientrano in nessuna categoria. Queste due funzioni che ora elencherò servono a informare Imel se il disegno lo si dovrà fare disegnando solamente un pixel per punto disegnato, oppure di utilizzare un'immagine per ogni singolo punto e quindi ottenere un effetto "pennello" nel disegno.
imel_enable_brush (): abilita nella categoria draw il disegno col pennello.
imel_disable_brush (): disabilita, sempre nella categoria draw, l'effetto pennello.
point: Comprende tutte le funzioni che riguardano la gestione di un singolo punto dell'immagine, identificato quindi dalle coordinate e dal colore. Oltre ad avere diverse funzioni per ottenere i punti che dovrebbero essere disegnati da una funzione di disegno.
font: Comprende le funzioni che permettono di scrivere del testo nell'immagine.
value: Comprende le funzioni che consentono di trasformare un valore, ad esempio in percentuale, in un altro generico.
Ultima cosa da ricordarsi è che l'asse y è invertito cioè il punto iniziale non è in basso a sinistra ma in alto a sinistra.