JPEG in TPicture laden (war: TPicture)
-
ja sry habe was gefunden und es sieht jetzt so bei mir aus
void __fastcall TForm1::Button5Click(TObject *Sender) { TPicture *pic(new TPicture); pic->RegisterFileFormat(__classid(TJPEGImage), "jpg", "jpg", __classid(TJPEGImage)); pic->LoadFromFile("C:\\test2.jpg"); Image1->Picture = pic; }kommen aber zwei errors:
Type name expected und
Function call missing )dabei wird die Zeile markiert aber ich sehe da nicht das eine Klammer fehlt
pic->RegisterFileFormat(__classid(TJPEGImage), "jpg", "jpg", __classid(TJPEGImage));
-
Ist die Klasse TJPEGImage denn überhaupt bekannt (Header)?
Ich glaube auch nicht, das das so einfach geht. Hast du dir mal diesen Thread aus der FAQ angeschaut?
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39240.html
-
TJPEGImage *jpg=new TJPEGImage(); jpg->PixelFormat=jf8Bit; jpg->Performance=jpBestQuality; jpg->Smoothing=false; try { jpg->LoadFromFile(file); } catch(EFOpenError *e) { ShowMessage("Bild nicht vorhanden"); return; } Graphics::TBitmap tb=new Graphics::TBitmap; tb->Assign(jpg); delete jpg; mach was mit tb (Image zuweisen o.a.)
-
Danke funktioniert so weit alles nur was nicht warum es nicht funktioniert die größe des Bildes an zu passen bzw zu verändern
TJPEGImage *jpg = new TJPEGImage(); jpg->Height=321; jpg->Width=537; jpg->LoadFromFile(T1); Image1->Picture->Assign(jpg);da kommt immer:"Cannot change
the size of a JPEG image"sry für meine vllt unnötigen fragen
-
Warum solle es funktionieren??
JPG ist eine SPEICHERFORMAT kein Bildanzeigeformat. Um eine Grafik zu manipulieren -> TBitmap. Das ist unter Windows das "native" Anzeigeformat.
Um eine JPG in der Größe zu änder müsste ja die Klasse das JPG auspacken -> Größe ändern -> wieder einpacken. Das ist nicht Aufgabe der Klasse und von JPG. JPG soll sparsam speichern.
-
könntest du mir vllt einen Lösungsansatz zeigen
-
Dank der FAQ habe ich es
-
sry muss nochmal stören
wieso geht nur das
bmp->Width = jpg->Width/4; bmp->Height = jpg->Height/4;satt das weil das brauche ich eigentlich
bmp->Width = jpg->Width=300; bmp->Height = jpg->Height=400;
-
Hallo
was sollen denn diese doppelten Zuweisungen auch machen?
bis bald
akari
-
schreib doch einfach:
bmp->Width=300; bmp->Height=400;Da muss ich Akari zustimmen
akari schrieb:
was sollen denn diese doppelten Zuweisungen auch machen?
MFG