2009-08-23 21 views
7

Ho provato ad aprire alcuni file JPEG in Delphi con il componente TImage. Ho anche aggiunto l'unità Jpeg. posso aprire la maggior parte dei file jpg e non ci sono problemi.Problema con la visualizzazione di alcuni file JPG in Delphi

ma quando provo ad aprire alcuni JPG, il programma lancia solo un'eccezione.

ho anche provato a caricare le immagini in modalità progettazione, ma c'è qualche problema. in modalità progettazione l'eccezione è:

Violazione di accesso all'indirizzo 402672A1 nel modulo 'vcljpeg70.bpl'. Scrivere all'indirizzo 08E84000

Perché non riesco ad aprire quel JPG? non sono corrotti li ho controllati in alcuni strumenti come il visualizzatore EXIF ​​di savantools.

qui è l'URL di una di quelle immagini: http://xs842.xs.to/xs842/09340/backpic435.jpg

Grazie mille

PS: La mia versione di Delphi è 7. Borland Delphi 7

+0

Isaac vedere la risposta su CMYK e Delphi;) – RRUZ

+0

Isaac: non è stata specificata la versione di Delphi (una parte importante di una domanda come questa), ma il collegamento RRUZ fornisce di seguito il problema per Delphi 5 - BDS2006. La squadra Delphi dovrebbe supportare l'apertura di jpg prevalenti, anche se non standard. – Argalatyr

+0

Qualcuno ha ricevuto il codice per rilevare che l'immagine è stata salvata come CMYK? –

risposta

12

Il motivo si può essere incontrando questo problema è dovuto al tipo di file. Delphi ha problemi nella visualizzazione di immagini JPEG che sono state codificate usando CMYK, piuttosto che la codifica RGB predefinita. CMYK è un formato generalmente utilizzato per la progettazione di stampa, prova e codifica sempre le immagini in formato RGB per evitare questo problema con Delphi.

Patch per Delphi jpeg.dcu

Bye.

+0

tipografie commerciali si stanno spostando a RGB (o sapori loro, come sRGB) a causa della dominanza del formato RGB, e il valore crescente che ricevono da visualizzazione online. – Argalatyr

+1

+1 per il collegamento a tale patch, utile a conoscenza. – robsoft

+0

Ha davvero risolto il mio problema! Ma i colori delle immagini sono diversi rispetto a ciò che mostrano Microsoft Picture and Fax Viewer. Penso che questo sia dovuto alle cose della gestione del colore. – Isaac

1

ottengo lo stesso errore. Questo sembra essere un bug nella lib di JPEG di Delphi. Dovresti segnalarlo a QC.

2

Controlla la libreria di immagini libere per supporto JPEG alternativo in Delphi se il nativo ha problemi. Free Image è una libreria open source che ti permette di lavorare con JPEG/PNG/... da Delphi/BCB/e altri. Molto bella la biblioteca IMHO.

http://freeimage.sourceforge.net/

+0

Grazie, ma IMHO è davvero una grande biblioteca. c'è una libreria/componente più semplice per mostrare solo le immagini (proprio come TImage)? – Isaac

6

Interessante. Né Internet ExplorerGoogle Chrome visualizzerà l'immagine JPEG a cui è collegato. Non ottengo gli errori 404 non trovato, ottengo semplicemente un segnaposto immagine che indica che l'immagine non può essere aperta/visualizzata correttamente.

FireFoxfa visualizza l'immagine.

Sei sicuro che non ci sia qualcosa di sospetto, o almeno leggermente inusuale, sui file JPG coinvolti?

UPDATE: Il file collegato nella domanda si apre in PaintShop Pro (un vecchio impianto versione 6.0) - se poi semplicemente ri-salvare come standard di codifica JPEG, IE e Chrome sia visualizzare l'immagine appena salvata come mi aspetterei. Ci sarebbe sicuramente qualcosa di un po '"strano" sulla codifica del JPEG originale che alcune applicazioni JPEG possono gestire, ma non tutte, compresi alcuni "attori principali", non solo Delphi. :)

+0

Anche Safari mostra l'immagine fine. Problema interessante Penso di averlo trovato una volta o due prima con IE che non mostrava alcuni jpeg e sempre (erroneamente) presumevo che ci fosse un problema con il file jpeg stesso. – robsoft

+0

grazie per considerazione! Ho fatto questa domanda sono alcuni forum "esperti", ma nessuno mi ha risposto. Stack Overflow è davvero fantastico! sulla tua risposta: hai ragione. penso anche che ci sia qualcosa di sbagliato con jpeg! ma ci sono molti jpeg come questo che devo mostrare. quindi, non posso modificarli o correggerli. devo mostrarli così come sono. "Visualizzatore immagini e fax per Windows" può mostrarli, quindi perché non posso? – Isaac

2

Ho esaminato il file con un editor esadecimale e ho trovato 3 intestazioni JFIF. Dopo aver estratto ogni parte, ho trovato 2 miniature e un'immagine. Niente di speciale, perché embedded thumbnails seem to be part of the EXIF2 standard.

Le miniature stesse si caricano perfettamente in Delphi e la conversione del file in qualcosa di leggibile può essere eseguita con quasi tutti i software che ho provato.

In ogni caso, questa pagina vi darà informazioni molto dettagliate circa l'immagine, e ciò che le intestazioni sono all'interno (solo incollare l'URL dell'immagine nella casella di testo):

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

+0

Grazie mille. ho letto dello standard EXIF2 che hai detto ed è stato molto interessante. ma io davvero non voglio cadere in dettaglio. Voglio solo trovare un modo per mostrare che i file JPEG in Delphi. forse un componente semplice mi aiuterebbe. – Isaac

0

SimDesign di NativeJpg può aprire il file. È una libreria JPEG interamente scritta in Delphi, e l'autore è stato bravo nell'aggiungere il supporto per nuove estensioni e spazi colore quando li abbiamo incontrati. Oltre a un discendente TGraphic per TImage supporta espone un sacco di interfacce di livello più basso per la manipolazione di file JPEG, anche se non li hanno utilizzati.

+0

Forse questa è un'altra buona soluzione. Ma non è una libreria gratuita. devo pagare € 49,95 per mostrare correttamente un jpeg, mentre quel jpeg potrebbe essere già mostrato da Microsoft Picture and Fax Viewer !! Grazie comunque. Almeno capisco Delphi 7 ha davvero problemi nel mostrare alcuni file JPEG! ;) – Isaac

+0

La pagina di download non esiste più. –