Avatar billede tango42 Nybegynder
29. september 2003 - 10:46 Der er 8 kommentarer og
1 løsning

JPEG error #X

Hey... Jeg har lavet et program som sender et JPEG billede fra en computer til en anden...Imellem de to computere er en tredje computer, som bevidst laver fejl (f.eks. tilfældige bitfejl) i billedet... Når billedet blir modtaget, sker det nogle gange at der kommer en exception, f.eks. JPEG error #67 eller JPEG error #28... Alt efter hvor der er indsat fejl i bitstrømmen... Er der en måde jeg kan få TJPEG komponenten til at ignorere de fejl og bare vise billedet... Skal jeg lave en try..except?
Her er et udsnit af koden:

....
try
  NMUDP.ReadStream(S);
  DataStream.CopyFrom(S,0);
  DataStream.Position := 0;
  Jpg.LoadFromStream(DataStream);  //
  Image_Received.Picture.Assign(Jpg);
finally
  S.Free;
  Jpg.Free;
  DataStream.Clear;
Avatar billede snowball Novice
29. september 2003 - 11:27 #1
Prøv med nedenstående. Har dog aldrig arbejdet med Streams, så det er et gæt. Men den skulle så gerne prøve at vise det den har modtaget indtil fejlen opstod.

try
  NMUDP.ReadStream(S);
  DataStream.CopyFrom(S,0);
  DataStream.Position := 0;
  Jpg.LoadFromStream(DataStream);  //
  Image_Received.Picture.Assign(Jpg);
except
  Image_Received.Picture.Assign(Jpg);
finally
  S.Free;
  Jpg.Free;
  DataStream.Clear;

Snowball
Avatar billede snowball Novice
29. september 2003 - 11:32 #2
Tænkte mig lige lidt om ;)

try
  NMUDP.ReadStream(S);
  DataStream.CopyFrom(S,0);
  DataStream.Position := 0;
  Try
    Jpg.LoadFromStream(DataStream);  //
    Image_Received.Picture.Assign(Jpg);
  except
    Image_Received.Picture.Assign(Jpg);
  End;
finally
  S.Free;
  Jpg.Free; 
  DataStream.Clear;

Snowball
Avatar billede tango42 Nybegynder
29. september 2003 - 12:05 #3
Hmmm...Det ser jo ud til at virke...Jeg takker Snowball. Her er lidt sne til dig :-)
Avatar billede tango42 Nybegynder
29. september 2003 - 12:09 #4
Snowball: Jeg ved ikke hvorfor, men kan ikke give dig dine point..Plejer der ikke automatisk at dukke point tildeling op efter et svar?
Avatar billede snowball Novice
29. september 2003 - 12:13 #5
Det er er fordi jeg kun har skrevet det som en kommentar. Du skal ikke give mig point hvis det ikke virker ;)

Snowball
Avatar billede tango42 Nybegynder
29. september 2003 - 12:18 #6
Hmm...Har lige prøvet det igen...Og nu virker det ikke...Der står 'Project Project1.exe raised exception class EJPEG with message 'JPEG error #67'. Process stopped. Use Step or Run to continue'...
Avatar billede snowball Novice
29. september 2003 - 12:24 #7
Kører du dit program indefra Delphi !? I få fald vil du altid få vist fejlen (med mindre du slår det fra inde i indstillinger) men fejlen vil ikke blive vist hvis du kører programmet for sig selv - altså blot ved at dobbeltklikke på .exe filen.

Snowball
Avatar billede tango42 Nybegynder
29. september 2003 - 12:33 #8
Hmm...Der lærte jeg noget nyt...Jeg tror det løser en del...Snowball skriv et svar, så du ka få dine point...Du har sgu været meget behjælpelig :-)
Avatar billede snowball Novice
29. september 2003 - 12:36 #9
Svar :)

Det er dit Try / Except del der gør at fejlen ikke bliver vist når man kører programmet normalt. I din Except del kan du så lave din egen fejlmeddelelse.

Snowball
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester