Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
FORUMS DELPHI F.A.Q DELPHI TUTORIELS DELPHI LIVRES COMPOSANTS SOURCES DEFI TELECHARGEZ DELPHI TV

Coder le PNG soi-même

Date de publication : 24/01/2003

Date de mise a jour : 24/01/2003

Par Eric SIBERT (Site)
 



Pas de grands discours.


J'ai codé l'enregistrement d'un bitmap au format png en tenant compte de la transparence. Quelques remarques :

  • le code est pour la CLX. Je l'ai testé avec D6 et K2. Ca doit pouvoir s'adapter facilement à la VCL.
  • la compression elle-même utilise une version Pascal de la zlib. Je l'ai récupérée quelque part sur Internet et je l'ai modifiée (conflit de nom avec Delphi et procédure qui posait problème). Ce n'est pas la version originale.
  • j'ai fait une librairie en deux niveaux. Une partie de bas niveau dans le dossier bloc et une partie plus évoluée dans lib.
  • la fonction SaveToFilePng de l'unité PngAll permet un enregistrement complètement automatisée en essayant d'optimiser la taille du fichier (utilisation d'une palette si possible, en niveau de gris ...)

Le paquet : PNG.zip (66 ko)

Pourquoi j'ai fait ça?
Parce que Kylix repasse toujours les images en 16M de couleurs avant de les sauver.
Pour gérer les transparences.
Pour faire des enregistrement en streaming d'images, c'est-à-dire commencer la compression avant d'avoir toute l'image pour ne pas saturer la mémoire. Pour ça, il faut utiliser la partie bas-niveau de la librairie.


Liste de mes articles :
Types énumérés, intervalle et ensemble
MMX avec Delphi 6 / Kylix
Préchargement de données dans le cache
MMX ( 2 ) avec Delphi 6 / Kylix
Instructions SIMD sur les réels
Internationaliser un projet Delphi
Installer D6 sous Windows 95
Tramage d'une image
Coder le PNG soi-même
Utiliser LibTiff avec Delphi
Ecrire une UDF FireBird avec Kylix


Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.
Responsables bénévoles de la rubrique Delphi : Nono40 et Pedro - Contacter par EMail :
Vos questions techniques : forum d'entraide Delphi - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.