Page 3 sur 3

Re: Module TinyIFF (Images Amiga IFF ILBM PBM)

Publié : jeu. 17/sept./2015 6:49
par Flype
Oui ;) en mieux puisque ca corrige aussi quelques coquilles (ham8 avait un petit bug) et le iff24 passe en dessous des 350ms avec marble (sur ma machine pas très puissante). Bon, j'ai enlevé 2 ou 3 trucs pas très utiles dans cette lib qui se veut "tiny". Mais tout ca a l'air bien stable car j'ai pas réussi à le faire planter et il y a encore matière à l'améliorer. Pas vu de problème sur un gros échantillon d'images très variées, sauf pour les formats batards qui utilisaient le copper de l'amiga (Sliced HAM, Dynamic HAM, HAM-E, PCHG, CTBL) mais elles sont très rares et elles s'ouvrent quand même en mode dégradé.

Re: Module TinyIFF (Images Amiga IFF ILBM PBM)

Publié : jeu. 17/sept./2015 7:05
par Flype
Bonne intégration dans ton viewer :)

Re: Module TinyIFF (Images Amiga IFF ILBM PBM)

Publié : jeu. 17/sept./2015 8:38
par Flype
Cool, t'es rodé :)

Je partagerai aussi une archive avec plein d'images iff variées pour que vous testiez cà.

J'utilise aussi un convertisseur jpg/png/gif vers iff qui produit des images 256, EHB, HAM d'excellente qualité.
Mais le plus intéressant avec ce module c'est de regarder les vraies images originales de l'époque.

Pour le #PB_Any, je vais voir ce que je peux faire (ajouter ImageID dans les fonctions Load/Catch).

Re: Module TinyIFF (Images Amiga IFF ILBM PBM)

Publié : jeu. 17/sept./2015 9:35
par Flype
Je viens de faire une modif pour accepter un ImageID classique ou #PB_Any,
c'est vrai que c'est plus conforme comme çà avec le standard PureBasic.
Je ne sais pas si c'est la bonne manière de faire mais çà me semble correcte.

Voir le post un peu plus haut (version 1.5).

Et un peu de docs çà fait toujours plus mieux pour un module :mrgreen:

Code : Tout sélectionner

DeclareModule TinyIFF
 
  ; @TinyIFF::Load()
  ; Charge une image à partir de l'emplacement disque spécifié.
  ; #ImageID   : Le numéro d'identification de l'image à charger.
  ; FileName$  : Le chemin et le nom du fichier à charger.
  ; KeepAspect : Garde l'aspect original de l'image (Tient compte de xAspect/yAspect).
  ; ResizeMode : Mode de redimensionnement de l'image (avec ou sans interpolation).
  Declare Load(ImageID.l, FileName$, KeepAspect.l = #True, ResizeMode.l = #PB_Image_Raw)
 
  ; @TinyIFF::Catch()
  ; Charge une image à partir de l'emplacement mémoire spécifié.
  ; #ImageID   : Le numéro d'identification de l'image à charger.
  ; *Memory    : Adresse de l'emplacement mémoire.
  ; MemSize.q  : Taille de l'emplacement mémoire (en octets).
  ; KeepAspect : Garde l'aspect original de l'image (Tient compte de xAspect/yAspect).
  ; ResizeMode : Mode de redimensionnement de l'image (avec ou sans interpolation).
  Declare Catch(ImageID.l, *Memory, MemSize.q, KeepAspect.l = #True, ResizeMode.l = #PB_Image_Raw)
 
  ; @Parameter KeepAspect
  ; #True  : Garde l'aspect original de l'image (défaut).
  ; #False : Redimensionne l'image en tenant compte de xAspect/yAspect.
 
  ; @Parameter ResizeMode
  ; #PB_Image_Raw    : Redimensionne l'image avec interpolation (défaut).
  ; #PB_Image_Smooth : Redimensionne l'image sans interpolation.
 
EndDeclareModule

Re: Module TinyIFF (Images Amiga IFF ILBM PBM)

Publié : jeu. 17/sept./2015 11:48
par Flype
Voilou une archive contenant Includes + Viewer très basique + une 40aine d'images de tests variées.
https://www.filepicker.io/api/file/3OaoviNtQrmcDHOXsUKX

Et une autre archive d'images bien sympa (déjà posté quelques posts plus tôt)
https://www.filepicker.io/api/file/9TWib84jTZCM82hwZeET

Il y a quelques grosses images > 1Mo - mieux vaut désactiver le debugger (Temps de chargement x20 ou plus souvent).

Re: Module TinyIFF (Images Amiga IFF ILBM PBM)

Publié : jeu. 17/sept./2015 11:55
par falsam
Merci pour ce partage Flype.

PS : Sous windows supprimer la bibliothéque sous system Gtk2 des options de compilation et faire glisser les images pour les visualiser.

Re: Module TinyIFF (Images Amiga IFF ILBM PBM)

Publié : jeu. 17/sept./2015 12:13
par Flype
Ha, merci falsam :) j'avais pas vu :mrgreen:
J'ai re-uploadé l'archive sans gtk2 dans les options de compilation.