jpg->Compress(); Fehler #36
-
Hmm. ich finde nur die CompressionQuality

-
YLIREBUS schrieb:
Hmm. ich finde nur die CompressionQuality

Genau das meine ich.
-
Damit arbeiten wir doch schon die ganze Zeit
.
siehe oben
-
ein weiterer Link
http://www.delphipraxis.net/post66158.html
-
Wie im Deplhi-Forum beschrieben funktionierts:
void __fastcall TForm1::Button1Click(TObject *Sender) { TJPEGImage *jpg = new TJPEGImage(); try { jpg->LoadFromFile("c:\\Temp\\sq15.jpg"); jpg->CompressionQuality = 1; // 1..100 jpg->DIBNeeded(); jpg->Compress(); jpg->SaveToFile("c:\\Temp\\compressed.jpg"); } catch ( ... ) { ShowMessage("Compression error."); } delete jpg; }
-
@F98 probier das bitte mal mit Compress 60.
Danke Braunstein, aber auch das ändert leider nichts.
Das Problem ist das es mit einigen "CompressionQuality's" funzt und mit anderen nicht.
Fals jemand irgendwann auch auf diese Problem Stößt hier mal die Fakten:
Borland C++ Builder5
Mein derzeitiger CODE:
jpg->LoadFromFile("c:\\juergen2.jpg"); bmp->Assign(jpg); jpg->CompressionQuality =iqual;//(int)Bild->CompressionQuality; jpg->Assign(bmp); jpg->DIBNeeded(); jpg->ProgressiveEncoding=true; jpg->Smoothing=true; jpg->Compress(); jpg->SaveToFile("C:\\xx" + IntToStr(iqual)+ ".jpg");LOG:
Ursprungsdaeit 15.800 KB (juergen2.jpg)
Uebersicht: (Größen der Target-Datein)
CompressionQuality(ohne jpg->ProgressiveEncoding=true; und jpg->Smoothing=true; und jpg->DIBNeeded())
10 --> FEHLER
20 --> FEHLER
30 --> 2170 KB
40 --> 2495 KB
50 --> 2810 KB
60 --> FEHLER
70 --> FEHLER
80 --> 4449 KB
90 --> 6325 KB
100 --> O.K+ jpg->ProgressiveEncoding=true;
+ jpg->Smoothing=true;10 982 KB
20 immer noch Fehler
30 jetzt Fehler
40 2330 KB
50 2657 KB
60 3002 KB
70 immer noch Fehler
80 4283 KB
90 jetzt Fehler
100 14970+ jpg->DIBNeeded(); --> Das selbe Ergebnis wie ohne.
Die Klasse ist denke ich ja Delphi Code...
Meine letzte Überlegung ist jetzt die MFC Klasse zu nehmen das Bild zu komprimiern, dann speichern und dann wieder zu laden.Ist das jetzt zu weit hergeholt ??

-
Durch
jpg->DIBNeeded();fällt auf alle Fälle schon einmal
bmp->Assign(jpg);und
jpg->Assign(bmp);weg.
-
Klappt bei mir bei jeder Quality-Einstellung.
Bei codeproject.com hat jemand eine feine Klasse geschrieben, allerdings für VC:
-
Wie groß ist Dein Bild ?
nimm mal bitte eins was 8 MB gross ist oder groesse.
-
Meins war 40kB groß, eins was 8MB groß ist habe ich nicht.
-
Dann puste es doch auf (habe ich mit meinem auch gemacht
)
-
So, hab ich gemacht, auf 11MB. Das Ergebnis ist das Selbe: Es funktioniert bei mir mit allen CompressionQuality-Einstellungen problemlos. Hast Du mal ein anderes Bild probiert als das, was Du jetzt verwendest?
-
JA, ich habe mehrere Bilder "aufgepumpt" und damit ausprobiert.
Ich möchte nicht glauben das der ADOBE Phoptoshop fehler beim Aufpusten macht
.
Was zu beweisen wär
.
Könntest Du mal ein Bild von mir nehmen und das ausprobieren ?
Kann ich Dir eins mailen ? 8MB oder eins auf meiner Webseite bereitstellen (geht erst heute abend habe die Fernwartung nich laufen
)?Du hast echt was Gut bei mir.

-
Yo. Schick mal per Mail.
-
Habe mal die Trial Version von Borland C++ Builder 6 installiert und was soll ich sagen dort funzt es einwandfrei
.Werden dann wohl mal endlich auf 6 umsteigen

Vielen Dank nochmal für die Hilfe.
-
Du hantierst immer noch mit dem 5er?

-
JA , leider, weil wir auf der Arbeit so ein großes Projekt haben, das wir erst jetzt in der Testphase sind das Projekt auf den 6er zu Portieren.
(Wir haben so ca 8 verschiedene Komponenten, die mann dann auch erst wieder kaufen muß und meißt muß man irgend etwas ändern das sie laufen.)
Wenn es nach mir gehen würde, würden wir das ganze gleich auf VisualStudio.NET portieren aber der Schritt ist warscheinlich zu groß
.
-
Genauso, wie Du es sagtst: Es ist ein riesen Problem (neue Versionen->neue Komponenten->Anpassungen, Kosten usw.)
-
Das Pronblem hatte ich auch mal. Beim Speichern als JPEG tritt das bei
mir auf, wenn die Datei > ca 1MB wird - aber nicht immer!.
Hängt von Bildgroesse UND Kompression ab.Das ist ein Bug in der JPeg- Klasse von Borland CBuilder der älteren Versionen!!!
Ab Version 6 klappt das ganze!
PS: Ich nehm noch den BCB 4. Ich hab mir mit der 6er Trial ne DLL gemacht, die das Speichern uebernimmt. die binde ich in meine 4er Projekte ein - KLAPPT!
-
D.H. diese DLL übernimmt auch das Compress ?
Köntest DU mir diese DLL zur verfügung stellen ?