Problème avec montrant des fichiers JPG dans Delphi

voix
7

J'ai essayé d'ouvrir certains fichiers JPEG en Delphi avec le composant TImage. i également ajouté l'unité Jpeg. Je peux ouvrir la plupart des fichiers jpg et il n'y a pas de problème.

mais quand je tente d'ouvrir certains fichiers JPG, le programme vient jeter une exception.

J'ai essayé aussi de charger que les images en mode de conception, mais il y a un problème. en mode de conception est l'exception:

Violation d'accès à l'adresse 402672A1 dans le module 'vcljpeg70.bpl'. Écriture d'adresse 08E84000

Pourquoi je ne peux pas ouvrir ce JPGs? ils ne sont pas corrompus. Je les ai vérifié dans certains outils comme savantools spectateur EXIF.

voici l'URL d'une des images que: http://xs842.xs.to/xs842/09340/backpic435.jpg

Merci beaucoup

PS: Ma version Delphi est 7. Borland Delphi 7

Créé 23/08/2009 à 18:49
source utilisateur
Dans d'autres langues...                            


6 réponses

voix
12

La raison pour laquelle vous pouvez rencontrer ce problème est dû au type de fichier. Delphi a des problèmes d'affichage des images JPEG qui ont été codées en utilisant CMJN, plutôt que le codage par défaut RVB. CMJN est un format qui est généralement utilisé pour la conception d'impression, essayez et toujours encoder vos images au format RGB pour éviter ce problème avec Delphi.

Patch pour Delphi jpeg.dcu

Au revoir.

Créé 24/08/2009 à 10:47
source utilisateur

voix
6

Intéressant. Ni Internet Explorer ni Google Chrome affichera cette image JPEG vous lié. Je ne suis pas 404 Not Found reçois des erreurs, je simplement un espace réservé d'image, ce qui indique que l'image n'a pas pu être correctement ouvert / affiché.

FireFox n'affiche l'image.

Êtes-vous certain qu'il n'y a pas quelque chose de louche, ou tout au moins un peu inhabituel, sur les fichiers JPG impliqués?

MISE À JOUR: Le fichier lié à la question ouvre dans PaintShop Pro (une ancienne version 6.0 installation) - si je puis simplement ré-enregistrer en tant que codage standard JPEG, IE et Chrome à la fois afficher l'image nouvellement enregistrée que je pense. Il semblerait certainement être quelque chose d' un peu « bizarre-ball » sur l'encodage du fichier JPEG d' origine que certaines applications JPEG peuvent gérer , mais pas tous, y compris certains « grands joueurs », pas seulement Delphi. :)

Créé 23/08/2009 à 23:39
source utilisateur

voix
2

Je l' ai regardé le fichier avec un éditeur hexadécimal, et a trouvé 3 têtes JFIF. Après avoir extrait chaque partie, j'ai trouvé 2 vignettes et une image. Rien de spécial, parce que les vignettes intégrées semblent faire partie de la norme EXIF2 .

Les vignettes se chargent bien dans Delphi, et convertir le fichier à quelque chose lisible qui peut être fait avec presque tous les logiciels que je l'ai essayé.

Quoi qu'il en soit, cette page vous donnera des informations très détaillées sur l'image, et ce que les en-têtes sont à l'intérieur (il suffit de coller l'URL de votre image dans la zone de texte):

http://www.monster-submit.com/resources/jpeganalyzer/

Créé 24/08/2009 à 03:49
source utilisateur

voix
2

Consultez la bibliothèque d'images gratuit pour le soutien JPEG alternatif dans Delphi si le natif a des problèmes. Free Image est un lib open source qui vous permet de travailler avec les formats JPEG / PNG / ... de Delphi / BCB / et d'autres. Très belle bibliothèque à mon humble avis.

http://freeimage.sourceforge.net/

Créé 23/08/2009 à 19:32
source utilisateur

voix
1

J'ai la même erreur. Cela semble être un bug dans la lib JPEG de Delphi. Vous devez le signaler à QC.

Créé 23/08/2009 à 19:26
source utilisateur

voix
0

De SimDesign NativeJpg peut ouvrir ce fichier. Il est une bibliothèque JPEG entièrement écrit en Delphi, et l'auteur a été bonne sur l' ajout d'un soutien pour les nouvelles extensions et des espaces de couleurs quand nous avons rencontré eux. En plus d'un descendant TGraphic pour TImage soutenir il expose beaucoup d'interfaces de niveau inférieur pour la manipulation de fichiers JPEG, bien que je ne l' ai pas utilisé les.

Créé 25/08/2009 à 01:24
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more