Forum > Graphics

Wrong image format --->jpeg

(1/1)

Eugenio Belli:
Sto valutando se fare il porting di una vecchia applicazione D7 CLX
a causa di problemi nel caricare immagini jpg bmp png in una picture.

Il codice è questo:
procedure TForm1.EditButton1ButtonClick(Sender: TObject);
begin
   if opendialog1.execute then begin
      editbutton1.Text:=opendialog1.Filename;

      if (editbutton1.text)<>'' then begin
         Image1.picture.Bitmap.LoadFromFile(string(editbutton1.text));
      end;
   end;
end;   

l'errore è questo:
il progetto project1 ha sollevato una eccezzione di classe 'FPImageException'
con messaggio: Wrong image format.

funziona solo con immagini bmp ma solleva eccezioni con jpg e png

con Delphi7 CLX ho aggiunto al progetto Unit PngImage.pas e la Jpeg.pas
e ora mi carica e posso stampare immagini Png ma non riesco con le Jpeg e le Bmp

potrei rinunciare agli altri due formati ma il Jpg mi è indispensabile
e stavo pensando di fare un porting su Lazarus.
(scusate non riesco ad usare il bottone # dell'editor...non fa nulla)

xinyiman:
Il problema è che devi fare un distingo. Con la funzione ExtractFileExt() riesci a capire se si tratta di un bitmap o di una jpeg. In funzione di quello cambi leggermente il codice.

Per le bitmpa usi

 Image1.picture.Bitmap.LoadFromFile(string(editbutton1.text));

per le jpeg usi

 Image1.picture.Jpeg.LoadFromFile(string(editbutton1.text));

per le png usi

 Image1.picture.png.LoadFromFile(string(editbutton1.text));

Ti consiglio di dare un occhiata qui: https://lazarus-ccr.sourceforge.io/docs/lcl/graphics/tpicture.html

Eugenio Belli:
Grazie, ho appena riprovato con Lazarus senza installare nessuna unit
e funziona con tutti e tre i formati : bmp jpeg e png
:-)

Navigazione

[0] Indice dei post

Vai alla versione completa