begin process at 2010 09 03 21:57:14
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > EASYCOMPRESSJPG V4 - COMPRESSION AVANCÉE D'IMAGES EN JPEG

EASYCOMPRESSJPG V4 - COMPRESSION AVANCÉE D'IMAGES EN JPEG


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Classé sous :jpeg, jpg, exif, compression, zip Niveau :Initié Date de création :20/08/2008 Date de mise à jour :26/08/2008 21:20:00 Vu / téléchargé :3 984 / 303

Auteur : ni69

Ecrire un message privé
Site perso
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Cette source est une nouvelle version de mon (vieux) code EasyCompressJpg http://www.delphifr.com/codes/EASYCOMPRESSJPG-COMP RESSE-IMAGES-JPEG_28592.aspx

J'ai laissé l'ancienne version sur ce site car j'ai réécrit cette application en partant de la toute base (un projet delphi vide en fait), 2 ans plus tard.
Autrement dit, il n'y a rien en commun au niveau du code par rapport à l'autre, et s'il persiste quelques similarités au niveau du fonctionnement global, toutes les caractéristiques ont été grandement améliorées. De plus, comme il y avait quelques commentaires de membres sur le code en lui-même, j'ai préféré ne pas couper toutes les références déjà existantes et ainsi laisser l'accès à cette ancienne version.


======================================= ============
===================================== ==============
Easy Compress Jpg v4


Pourquoi v4? Simplement car c'est la quatrième monture de l'application que je vous présente ici!
Maintenant parlons de l'application en elle-même : Ce programme permet de compresser des images bitmap/jpeg en images jpeg.

Atouts Majeurs :
> Ajout simplissime de fichiers à la sélection
> Aperçu de l'effet de la compression sur une image avant son éventuelle modification, incluant la possibilité de zoom sur des détails
> Réglage fin du niveau de compression
> Redimensionnement possible, 6 formats standards proposés
> Plusieurs possibilités d'exportation, incluant la création d'archives ZIP
> Gestion complète des métadonnées EXIF, XMP, miniatures (thumbnails), Commentaires, Copyright,...
> Possibilité d'ajout d'une mention de Copyright ou de tout autre texte sur l'image elle-même, dans une police personnalisée
> Possibilité de modifier les dates de création, de modification et de dernier accès
> Gestion fine des erreurs
> Profils de compression personnalisables permettant de paramétrer l'ensemble de l'application d'un seul coup



========================================== =========
======================================== ===========
Détails des fonctionnalités présentes dans la fenêtre principale:


GESTION DES FICHIERS SELECTIONNES

Ajout de fichiers à la liste : Trois méthodes possibles :
> en passage de paramètres d'un fichier image ou d'un dossier, et ceci même quand l'application est déjà en cours d'exécution
> par drag&drop d'un fichier image ou d'un dossier sur la liste
> par le bouton "Ajouter"
Dans le cas de l'ajout d'un dossier, toutes les images valides (bitmap et jpeg) qui sont incluses à l'intérieur de ce dossier et dans ses sous-dossiers sont incluses

Suppression de fichiers de la liste :
Sélectionnez simplement les fichiers dans la liste (possibilité de sélection multiple) et cliquez sur "Supprimer" (la souche Suppr. marche également)

Visualisation d'un fichier de la liste :
Lors de la visualisation d'un fichier, une autre fenêtre s'ouvre. Vous avez ainsi la possibilité de comparer l'image originale avec une version compressée en fonction du niveau de compression que vous spécifiez. Vous pouvez vous déplacer dans l'image (cliquez dessus et faites glisser) et changer le niveau du zoom pour observer des détails plus finement. Quand une image compressée d'exemple est produite, sa taille apparaît automatiquement pour vous permettre de comparer également les différences.

------------------------------------ ---------------
COMPRESSION

Sélection de la qualité de la compression :
Cet indice parcourt tous les entiers de 1 à 100 (1 représentant la qualité la plus basse, et 100 la meilleure).
Vous pouvez vous servir de l'option de visualisation (voir ci-dessus) pour déterminer la qualité de compression adaptée à vos exigences.
La taille finale des fichiers créés dépend principalement de ce critère.

Redimensionnement des images
Cette option vous permet de réduire les dimensions des images créées en redimensionnant toutes les images plus grandes que la limite fixée.
Six formats standards sont proposés : 640×480, 800×600, 1024×768, 1280×1024, 1600×1200, et 2048×1536
Les images sont bien évidemment redimensionnées en conservant leurs proportions initiales (les dimensions ci-dessus ne sont que des limites de taille) et en évitant au maximum leur altération (pixellisation, etc...)

----------------------------------------- ----------
DESTINATION

Choix de l'emplacement de destination : Trois possibilités s'offrent à vous
> Remplacer les fichiers : Dans ce cas les images compressées prendront la place des images originales et vous perdrez toutes les anciennes versions à moins que vous ne décidiez de réaliser une sauvegarde, option qui est proposée par le programme.
> Copier dans un dossier : Toutes les images sélectionnées seront compressées et placées dans un même dossier indifféremment de leur emplacement d'origine. Les doublons seront automatiquement renommés afin de ne perdre aucun fichier.
> Compresser dans un dossier ZIP : Toutes les images sélectionnées seront compressées et placées dans un dossier ZIP indifféremment de leur emplacement d'origine. Les doublons seront automatiquement renommés afin de ne perdre aucun fichier.


======================================= ============
===================================== ==============
Utilisation de ressources externes et autres détails


RESSOURCES EXTERNES

J'utilise dans cette application deux ressources complémentaires (j'en remercie les créateurs!) :
> EXIFTOOL de Phil Harvey (http://www.sno.phy.queensu.ca/~phil/exiftool/)
> TZIP de Angus Johnson (http://www.angusj.com/delphi/)

Tous les fichiers nécessaires au fonctionnement de TZIP sont fournis dans le zip.
Cependant, pour des raisons pratiques (taille des fichiers), il m'est impossible d'inclure le fichier concernant EXIFTOOL dans le zip, et vous devrez le télécharger.

Ces deux compléments sont prévus pour être insérés dans des fichiers .RES (respectivement "ZIPDLL.RES" et "EXIFTOOL.RES"), afin d'être ajoutés au programme lors de la compilation, chose qui permet ensuite leur recréation s'ils viennent à manquer lors de l'exécution.
Vous n'aurez donc à disposition ici dans le zip que "ZIPDLL.RES"

Méthode pour vous en sortir quand même :
> Téléchargez ExifTool sur http://www.sno.phy.queensu.ca/~phil/exiftool/ prenez la version "Stand-Alone Windows Executable" (la dernière version en date étant la 7.40)
> Renommez le fichier "exiftool(-k).exe" en "exiftool.exe"
> Copiez ce fichier dans le répertoire "\External_Resources\EXIFTOOL\"
> Compilez le fichier Resource Script "\External_Resources\EXIFTOOL.RC" avec le compilateur de ressources de Borland (brcc32.exe)
     un exemple de ligne de commande à entrer pour cela dans la console :
     brcc32 "C:\...\External_Resources\EXIFTOOL.RC"
> Un fichier nommé "\External_Resources\EXIFTOOL.RES" doit avoir été créé.
> Vous pouvez maintenant compiler l'application !

Dans le futur, vous aurez besoin de fournir uniquement l'exécutable de l'application pour déployer le programme sur un autre ordinateur (les compléments sont recréés automatiquement)

Pour ceux que ce processus de création de ressources fatigue à l'avance, vous pouvez télécharger le ZIP complet sur mon site web www.ni69.info

----------------------------------- ----------------
FICHIER DE PROFILS PERSONNALISES

Ce fichier (facultatif au fonctionnement normal du programme) est nommé "CompressionProfiles.jcfg", placé dans le répertoire de l'application, et n'est rien d'autre qu'un fichier INI, modifiable par n'importe quel éditeur de texte.
Lors du démarrage de l'application, les profils qu'il contient sont chargés et sont disponibles facilement en bas de la fenêtre.
Toutes les directives nécessaires, ainsi que le format des données à fournir pour conduire à la création de vos profils personnalisés sont inclus dans le fichier en commentaires
Pourquoi le changement d'extension ? Hé bien pas simplement pour faire joli !
En effet, avez-vous déjà essayé de jouer avec des fichiers d'extension ".ini" à partir d'une session "Invité" de Windows XP ?
Vous aurez des surprises, l'accès y est restreint !

----------------------------------------------- ----
INSTALLATION DU PROGRAMME

Ce programme ne nécessite pas d'installation particulière au niveau du registre ou des fichiers système.
Sachez toutefois que lors de l'exécution, deux fichiers sont créés dans le dossier de l'application, et que si vous ajoutez à cela le fichier de profils personnalisés, on arrive à 4 fichiers au total, donc autant dire qu'il est plus pratique de ranger ça dans un dossier à part.
Note : sachez également qu'un répertoire "$temp$" peut être créé dans le dossier de l'application lors de la compression.
Ce dossier est normalement supprimé automatiquement à la fin de son exécution.


 Conclusion

J'ai tenté dans la réalisation de ce programme de soigner le code au maximum, de le commenter abondamment, et de le structurer du mieux que j'ai pu.
Si vous avez des questions à propos de cette source, c'est avec plaisir que je vous répondrai.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

26 août 2008 21:19:52 :
Ajout de directives de compilation permettant de gérer les différences de forme de la fonction "SelectDirectory" de l'unité "FileCtrl" selon les versions de Delphi. Redéfinition de la variable WM_PARAM_ATOM en Cardinal (et non plus Integer).
26 août 2008 21:20:00 :
Ajout de directives de compilation permettant de gérer les différences de forme de la fonction "SelectDirectory" de l'unité "FileCtrl" selon les versions de Delphi. Redéfinition de la variable WM_PARAM_ATOM en Cardinal (et non plus Integer).

 Sources du même auteur

Source avec Zip Source avec une capture UAC (USER ACCOUNT CONTROL) - EXÉCUTER UNE APPLICATION EN TAN...
Source avec Zip Source avec une capture RESTAURATION DE FICHIERS SUPPRIMÉS SUR UN DISQUE DUR NTFS
Source avec Zip Source avec une capture MODIFIER LES DATES DE CRÉATION, DE MODIFICATION ET DE DERNIE...
Source avec Zip Source avec une capture LISTER LES PÉRIPHÉRIQUES DU SYSTÈME (WINDOWS XP)
Source avec Zip Source avec une capture RETRANSMISSION DE TOUS LES PARAMÈTRES VERS UNE SEULE APPLICA...

 Sources de la même categorie

Source avec Zip Source avec une capture AUSSI PRATIQUE QUE CANVAS.PIXELS[ ] MAIS JUSQU'À 450 FOIS PL... par Caribensila
Source avec Zip Source avec une capture REMPLISSAGE D'UNE COURBE DE BÉZIER par barbichette
Source avec Zip Source avec une capture DESKTOPICONFLYING par cantador
Source avec Zip Source avec une capture DÉFILEMENT D'UN TEXTE SOUS FORME D'IMAGE SUR UN AFFICHEUR À ... par zwail1
Source avec Zip Source avec une capture CONVERSION PIXEL, MM, INCH, TWIPS, POINT... par yanb

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture UPXHELPER V1.1.1 par Christophe67
Source avec Zip TÉLÉ SUR LE RÉSEAU . par titout2
Source avec Zip CHARGEZ VOS JPEG DEPUIS VOS RESSOURCES FACILEMENT par cirec
Source avec Zip Source avec une capture COMPRESSEUR JPEG par Gimli
Source avec Zip Source avec une capture EASYCOMPRESSJPG - COMPRESSE LES IMAGES JPEG par ni69

Commentaires et avis

Commentaire de ni69 le 20/08/2008 11:34:12

Pour ceux que cela intéresse, l'exécutable déjà compilé (et compressé avec UPX) est également directement disponible sur mon site web www.ni69.info rubrique "Informatique/Programmes Delphi"

Commentaire de aminedelphi le 21/08/2008 21:32:08 10/10

Bonjour
Pour cette source y a pas a dire excellente. Pour mon niveau je ne peu pas te faire
De critique.
J'ai visité ton site la rubrique robotique ma intéresse spécialement TPE IA&Robotique
Es que il y a possibilité de la disponibilité de la source  
Il a y un point tu est sure que tu fais Math Physique, tu fais pas médecin aussi.
@+

Commentaire de JulioDelphi le 22/08/2008 10:48:07 administrateur CS

Salut !!

Enfin du neuf de ton coté =)

Bon, j'ai tenté une compilation mais ... il bloque sur :
"SelectDirectory('Sélectionnez l''emplacement de Destination de la Copie de Sauvegarde', '', SelectedPath, [sdNewUI, sdNewFolder, sdShowEdit, sdValidateDir, sdShowShares], nil)"

tu utilises quelle version de delphi ? chez moi (delphi 7) ma fonction SelectDirectory Tontenu dans FileCtrl.pas est :
"function SelectDirectory(var Directory: string; Options: TSelectDirOpts; HelpCtx: Longint): Boolean;" donc forcément ...

Help :)

Commentaire de cincap le 25/08/2008 10:26:58

Bonjour à toutes et à tous,

@ NI69, tout comme JULIODELPHI, voici les erreurs avec Delphi 6 :

[Avertissement] Main.pas(29): L'unité 'ShellCtrls' est propre à une plate-forme
[Avertissement] Main.pas(30): L'unité 'FileCtrl' est propre à une plate-forme
[Avertissement] Main.pas(417): Le symbole 'FindData' est propre à une plate-forme
[Avertissement] Main.pas(482): Combinaison de types signés et non signés - opérandes agrandis
[Erreur] Main.pas(600): Trop de paramètres originaux
[Erreur] Main.pas(600): Identificateur non déclaré : 'sdShowEdit'
[Erreur] Main.pas(600): Identificateur non déclaré : 'sdValidateDir'
[Erreur] Main.pas(600): Identificateur non déclaré : 'sdShowShares'
[Erreur] Main.pas(600): Trop de paramètres originaux
[Erreur] Main.pas(609): Trop de paramètres originaux
[Erreur] Main.pas(609): Identificateur non déclaré : 'sdShowEdit'
[Erreur] Main.pas(609): Identificateur non déclaré : 'sdValidateDir'
[Erreur] Main.pas(609): Identificateur non déclaré : 'sdShowShares'
[Erreur] Main.pas(609): Trop de paramètres originaux
[Erreur fatale] EasyCompressJpg.dpr(30): Impossible de compiler l'unité utilisée 'Main.pas'

Sinon, bravo pour ton site et tes applications.

@+,

Cincap

Commentaire de ni69 le 26/08/2008 21:09:45

@ AmineDelphi :
Merci bien! Pour plus de détails sur des éléments de mon site, contacte moi par MP.
Sinon je ne fais pas médecine. Pourquoi?

@ JulioDelphi & Cincap :

Cela vient effectivement d'une différence de version de Delphi! J'utilise Delphi2005 où la seconde forme surchargée de SelectDirectory a subi des modifications. Voici les différentes déclarations :

DELPHI6
function SelectDirectory(var Directory: string; Options: TSelectDirOpts; HelpCtx: Longint): Boolean; overload;
function SelectDirectory(const Caption: string; const Root: WideString; out Directory: string): Boolean; overload;

DELPHI2005
function SelectDirectory(var Directory: string; Options: TSelectDirOpts; HelpCtx: Longint): Boolean; overload;
function SelectDirectory(const Caption: string; const Root: WideString; var Directory: string; Options: TSelectDirExtOpts = [sdNewUI]; Parent: TWinControl = nil): Boolean; overload;

Je m'occupe de ça de suite.

Commentaire de ni69 le 26/08/2008 21:27:16

La mise à jour est faite. J'ai rajouté des directives de compilation pour permettre aux versions de Delphi antérieures à 2005 de compiler directement le code, sans perdre les avantages que procure la nouvelle version de la fonction pour les codes compilés avec des versions postérieures.

Commentaire de aminedelphi le 27/08/2008 00:04:14

Bonjour NI69

Pourquoi? C'est juste pour rigoler un peu car
J'ai vu une diversité dans ton site est t'ai idée
@+

Commentaire de cincap le 27/08/2008 08:49:56

Bonjour à toutes et à tous,

@ NI69, je confirme que tout est ok avec D6 après avoir tenu compte des programmes extérieurs et après avoir enlevé XPMAN naturellement.

Bravo à toi, cette application est riche en code et solution.

@+,

Cincap

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Compression Zip [ par bgK ] Salut,Je voudrais compresser des fichiers en zip avec delphi. Comment faire ?bgKPs : Peut être utiliser l'unité zLib, mais je ne sais pas m'en servir Convertion d'un Jpeg en Bitmap puis stockage dans un tableau [ par dami ] Bonjour a tous. Pour les besoins d'OpenGL, j'ai besoin de transformer mon Jpeg en BMP puis de stocker le BMP sous forme de tableau. J'ai récupéré et a Convertion d'un Jpeg en Bitmap puis stockage dans un tableau [ par dami ] Bonjour a tous. Pour les besoins d'OpenGL, j'ai besoin de transformer mon Jpeg en BMP puis de stocker le BMP sous forme de tableau. J'ai récupéré et a CRC et compression [ par costello ] re bonjour est ce que quelqu'un aurait un moyen de répondre à une question qui me pose un réel problème...- comment savoir le CRC d'un fichier contenu interbase jpeg [ par frantzgac ] bonjourje cherche à stocker des images jpeg dans une bse interbase pour les relire ensuite bien sur.le stockage est sans problème :------------------- du jpeg ou jpg dans une image Tdbimage [ par yvessimon ] TDBimage  accepte le format bmp.Avec  les formats   jpeg   ou   jpg   il y a une erreur !Question :E Pb de conversion emf vers jpg de grandes images [ par macpc ] Bonsoir à tous,Je suis confronté au problème suivant lors de la conversion de grandes images emf vers jpg, j'obtiens une erreur endofressources:Po Timage et les format jpeg et jpg [ par yvessimon ] Bonjour,Je souhaite charger une image jpeg ou jpg dans un Timage.J'ai trouvé un exemple mais il me demande le composant TJpegImage ??A la compile Charger un jpg renommé en gif et le convertir en gif [ par Filipe35 ] bonjour à tous, dans un de mes programmes je charge plusieurs image à la suite avec indy pour les sauvegarder hors il arrive parfois que c Convertir un fichier .jpg en .ico [ par clarskay ] Bonjour,S'il vous plait quelqu'un pourrait-il m'aider pour convertir mes photos en fichier avec extention .ico. Merci


Nos sponsors


Sondage...

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,640 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales