begin process at 2010 02 10 11:48:36
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > EVITER LA FENETRE ERREUR JPEG #41 INTEGRE A TPICTURE

EVITER LA FENETRE ERREUR JPEG #41 INTEGRE A TPICTURE


 Information sur la source

Note :
6,5 / 10 - par 2 personnes
6,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Classé sous :fenêtre, erreur, jpg41, tpicture Niveau :Débutant Date de création :28/10/2006 Date de mise à jour :30/10/2006 08:21:59 Vu / téléchargé :4 089 / 371

Auteur : cirec

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

 Description

Cliquez pour voir la capture en taille normale
Voilà c'est mon deuxième "plagia" d'une source de Japee (désolé ... ;) )

Après la solution de Japee qui, grâce à une astuce, permettait d'éviter le message
d'erreur bien connue "Erreur JPEG #41", source que vous trouverez ici :
http://www.delphifr.com/codes/EVITER-FENETRE-ERR EUR-JPEG-41-SI-CHARGEMENT-IMAGE_29433.aspx

J'avai s trouvé une solution (que vous trouverez dans les commentaires de la source de Japee)
il y a deux mois et que je pensais être la bonne ...

Mais quand j'ai voulu réutiliser ce bout de code ... oh!! Surprise,
L'interception de l'erreur JPEG #41 ne se faisait plus.
Après un travail d'investigation, il en ressort que la méthode que je proposais ne
fonctionnait qu'avec la propriété Stretch de TImage à True ??????? (Voir la Démo DemoOld.dpr)


Comme je n'étais pas satisfait du résultat je me suis penché à nouveau sur le problème et il en résulte
"une nouvelle méthode d'interception" intégrée directement dans ma nouvelle unité crJPEG
(Crée à la base pour pouvoir charger les JPEG directement depuis les ressources) Voir ici :
http://www.delphifr.com/codes/CHARGEZ-VOS-JPEG-D EPUIS-VOS-RESSOURCES-FACILEMENT_40049.aspx
(Je fait ma petite Pub en passant ... lol)

La détection et l'interception fonctionnent maintenant à 100% aussi bien avec :
      - TJPEGImage  (LoadFromFile & LoadFromStream & LoadFromResourceName & LoadFromResourceID)
      - Qu'avec TImage.Picture (LoadFromFile & LoadFromStream)


Exceptionnellement vous trouverez deux projets, je tenais absolument à ce que vous puissiez
constater par vous même le problème avec "TImage.Stretch"
      - DemoOld.dpr : ancienne version avec problème "TImage.Stretch"
      - Demo.dpr    : 100% fonctionnel dans tous les cas

Source

  • {Le teste se résume à ça:
  • Un simple Try Except pour intercepter l'erreur JPEG #41
  • ce qui parait logique me direz-vous !!!
  • Mais qui ne fonctionnait pas}
  • Try
  • Image1.Picture.LoadFromFile('..\Images\Invalid.jpg');
  • Except
  • On E : Exception do
  • ShowMessage(E.Message);
  • End;
{Le teste se résume à ça:
 Un simple Try Except pour intercepter l'erreur JPEG #41
 ce qui parait logique me direz-vous !!! 
 Mais qui ne fonctionnait pas}
  Try
    Image1.Picture.LoadFromFile('..\Images\Invalid.jpg');
  Except
    On E : Exception do
    ShowMessage(E.Message);
  End;

 Conclusion

Je l'ai testé Ok sous D4 et D9
La seul chose que j'ai remarqué c'est sous D9 les numéros d'erreurs changent :
    Sous D4 Erreur #41  = sous D9 Erreur #42
    Sous D4 Erreur #52  = sous D9 Erreur #53
    
Voilà si vous savez pourquoi ...
Et dites moi ce que vous obtenez et avec quelle version de Delphi ... Merci

 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

28 octobre 2006 18:41:25 :
Ajout de la capture
29 octobre 2006 20:10:24 :
Ajout du fichier dof
29 octobre 2006 20:14:22 :
Ajout du fichier *.dof
29 octobre 2006 21:41:53 :
Ajout du fichier dof
29 octobre 2006 21:52:03 :
Ajout du fichier dof
29 octobre 2006 21:52:17 :
Ajout du fichier dof
29 octobre 2006 22:53:29 :
+ dof
30 octobre 2006 08:21:00 :
Ajout du Fichier dof
30 octobre 2006 08:21:22 :
Ajout du Fichier dof
30 octobre 2006 08:21:40 :
Ajout du Fichier dof
30 octobre 2006 08:21:59 :
Ajout du Fichier dof

 Sources du même auteur

Source avec Zip Source avec une capture BITMAP 32BITS INTÉGRÉ À LA VCL (TIMAGE, TPICTURE, TBITMAP, T...
Source avec Zip Source avec une capture [ASTUCE] COMMENT VOIR UN ITEM, D'UNE LISTBOX, TRONQUÉ DANS U...
Source avec Zip Source avec une capture TEXTE GRAPHIQUE AVEC CONTOUR, OMBRE ET TEXTURE EN API VERSIO...
Source avec Zip Source avec une capture TEXTE GRAPHIQUE AVEC CONTOUR, OMBRE ET TEXTURE EN API
Source avec Zip Source avec une capture ROTATION (RAPIDE) DE BITMAP (À 360°) EN PUR GDI

 Sources de la même categorie

Source avec Zip Source avec une capture EFFET VITRE ET THUMBNAILS SOUS VISTA par Bacterius
Source avec Zip Source avec une capture ANAGLYPHEUR OU COMMENT VOIR EN RELIEF LES STÉRÉOSCOPES ANCES... par jfs59
Source avec Zip Source avec une capture DÉFORMER UNE IMAGE AUX DIMENSIONS D'UN QUADRANGLE QUELCONQUE... par FFCAST
Source avec Zip Source avec une capture THREAD ET BITMAP (DESSIN AU CRAYON) par barbichette
Source avec Zip Source avec une capture ÉCRAN DE VEILLE FEU D'ARTIFICE par barbichette

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture GESTION DE CASES À COCHER PERSONNALISÉES DANS UN STRINGGRID par Jean_Jean
RÉELS ET RÉALITÉ par Kenavo
Source avec Zip Source avec une capture SIGNIFICATION DES CODES D'ERREUR DE L'API WIN32 - UTILISATIO... par japee
Source avec Zip Source avec une capture MORPHING ENTRE DEUX IMAGES par nicoodelphi
Source avec Zip Source avec une capture LE MINIMUM POUR UNE FENÊTRE WIN32 par rt15

Commentaires et avis

Commentaire de Toya78 le 29/10/2006 10:01:06

Je veux bien tester avec mon Delphi 7 mais heu... comment obtenir un JPEG corrompu ? ^^'

Commentaire de Toya78 le 29/10/2006 10:01:45

Désolé j'avais pas vu le zip...

Commentaire de Toya78 le 29/10/2006 10:05:50

Sous Delphi 7 c'est comme sous le 9 apparemment : les numéros d'erreurs sont 42 et 53.

Sinon à corriger :
FRep  = 'Images\';
pas
FRep  = '..\Images\';

:)

Commentaire de cirec le 29/10/2006 10:11:11 administrateur CS

tu as dû changer quelques chose où déplacer l'exe

je viens de télécharger le zip et sans rien changer tout fonctionne !!!

si tu ne touche à rien l'exe se retrouve dans \Exe\Demo.exe
et quand tu démarres l'application de cette emplacement le chemin est correcte !

sinon pour information il n'y a pas de fichier corrompu dans l'archive :
Valide : comme son nom l'indique est une image valide

BadFormat : est une image BMP

Invalid  : est un fichier vide.

Merci pour l'information sous D7

Commentaire de Toya78 le 29/10/2006 10:12:56

Ha ok désolé
Ca vient juste du fait que j'ai pas lancé l'exe existant. J'ai lancé l'application depuis Delphi après compilation lol.

Commentaire de cirec le 30/10/2006 09:11:35 administrateur CS

Avis aux Admins :
Il y a un sérieux problème avec l'upload sur le site
depuis hier soir j'essayais de mettre à jour ma source (il manquait juste deux fichiers dof)
sans succès jusqu'a la dernière tentative ou j'ai eu l'idée de ne pas mettre le Zip (pour voir ce qui allait se passer) et la ça a fonctionné et toutes les autres tentatives d'avant étaient également présente !!!!

Ce qui devrait résoudre le problème de l'exe mal placé quand on le compile depuis l'IDE.
En effet le Zip de départ fonctionnait très bien avec une compilation en ligne de commande (je n'utilise que cette méthode pour une source téléchargé) mais pas depuis l'IDE

voilà tout fonctionne comme prévu maintenant :-)
@+
Cirec

Commentaire de FreDelph le 30/10/2006 18:02:28

Pour info j'utilise le code suivant sans problème:

try
  Jpg.Picture.LoadFromFile(NomImage);
except
  on EInvalidGraphic do
  DeleteFile(NomImage);
end;

Commentaire de cirec le 30/10/2006 20:42:47 administrateur CS

Bon alors

J’avais déjà testé le bout de code que tu donnes, je l'ai re-testé par acquis de conscience …
Et je suis au regret de t’annoncer ...

bah, que ça ne fonctionne pas … l'erreur JPEG #41 n'est pas interceptée

Voilà, teste avec les images que je donne dans le zip et tu verras

@+
Cirec

Commentaire de FreDelph le 30/10/2006 21:09:47

Désolé pour cette info donnée de mémoire sans vérification... Tu as raison, je viens de retester.

Commentaire de cirec le 21/11/2006 16:37:26 administrateur CS

Alors ... une note de 5 oui je veux bien ...
mais il aurai été plus courageux et surtout plus constructif de dire pourquoi ?

qu'est ce qui ne vas pas ?
y a t'il une autre méthode ? plus simple ?
&
en plus le tout est intégré à TPicture donc TImage et sans installation !!!
(rien que cela n'est pas courant)
et pour finir dans une application, c'est quand même plus propre d'intercepter le message d'erreur
et de pouvoir réagir sans que l'utilisateur ne s'en aperçois que de proposer un soft qui n'est même pas capable d'intercepter toutes les erreurs et du coup d'éclanche une erreur qui détone de suite avec le reste de l'application.

le minimum serait de s'expliquer ... mais c'est peut être tout simplement une vengeance
@+
Cirec

Commentaire de FreDelph le 21/11/2006 17:20:14

Pour ma part je ne pense pas à noter... Mais c'est vrai que c'est vraiment utile et que ça mérite mieux !

Commentaire de cirec le 21/11/2006 17:44:47 administrateur CS

@FreDelph : Merci pour ton soutient, ça fait toujours plaisir :)

Mais au delà de la note ce qui m'intéresse le plus c'est de comprendre, pourquoi, qu'est ce qui n'est pas bon dans le code, afin de pouvoir l'améliorer et par la même accroître mes connaissances
et en faire profiter toute la communauté.

@+
Cirec

Commentaire de cincap le 09/01/2007 07:23:45

Bonjour,

Bravo pour ce super code, je note 10.

Cela ne m'étonne pas que ce soit l'ami Cirec à l'origine de cette réponse, comme quoi.............

@+,

Cincap

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Réactualiser une fenêtre lors de l'exécution d'un processus 'long' [ par PinOff ] Je cherche à savoir comment faire le DoEvents de VB en Delphi, pour éviter que dans une boucle, mon appli soit figée et blanche.Merci !!!!Vive le dépu Une erreur (je suis debutant) [ par Delphi6 ] Salut donc voilà en faite j'arrive pas a passer d'une class a l'autre!! voilà ce que j'ai essayer mais ça marche pas dite moi ou est l erreur svp!: Sh Erreur [ par delphi ] elle est ou l erreur svp ici :ShowWindow(FindWindowEx(FindWindowEx(FindWindowEx(FindWindowEx(FindWindow('AOL Frame25','AOL'),0, 'MDI Client',nil),0,'A erreur bde [ par jakouz ] bonjour,quand j' execute une appl. delphi j'ai le message d' erreur suivant,"probleme sur BDEEngineError : Nom Dupliqué dans ce contexte"mais je ne sa Les messages d"erreur [ par Zoubir ] Bonjour,Je demande est ce que c'est possible de personnaliser les messages d'erreur qui sont gérés automatiquement par Delphi telsque les messages d'e Ouvrir une fenêtre avec ses dimensions [ par Pilou ] Comment peut on attribuer la taille et position d'une fenêtre qu'on ouvre avec shellexecute ?ShellExecute (handle,'Open', PChar('c:\windows\') ,PChar Erreur: Declaration forward ... [ par Lénaïc ] Avec le code ci-dessous j'ai une erreur "Déclaration forward ou external non satisfaite: 'TFrm_Perso.ComboAddFile'".Je n'arrive pas à trouver l'erreur ClientSocket Error [ par Kaiser ] Comment empecher le déclenchement d'une erreur par ex lorsque l'host du clientsocket n'existe pas...g essayé de mettre errorcode:=0; dans la procedure la croix de fermeture de la fenêtre en haut à droite soit inactive [ par Gray Fox ] Est-ce que quelqu'un sait comment faire pour désactiver la petite croix de Windows pour fermer le programme.Merci de me contacter par e-mail. ListView et MDI.... [ par PierreP ] voici mon problème : j'ai créé un ListView dans ma fenêtre principale, et je voudrais que lorsque l'on double-clique sur un élément de ce ListView cel


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,905 sec (3)

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