Echtzeit-BMP-JPG-Konvertierung in Delphi 7 verwenden von Paradox
Recherche hier und bei Code-News Schnell, ich habe nichts gesehen auf dem Punkt zu meinem problem. Ich habe eine app, wo ein Kunde das Bild (ein JvDBImage) wird erworben durch die Zwischenablage, von einem Drittanbieter-Bild-Aufnahme-Programm, wenn der Benutzer klickt auf einen button in meine app zu laden. (PhotoImage.PasteFromClipboard). Lädt und speichert das Bild als bitmap ... manchmal eine GROßE BMP. Also, ich brauche etwas, das das speichern und laden von JPG.
Habe ich versucht: .. verwendet JPeg -
var
jpg : TJpegImage;
begin
PhotoImage.PasteFromClipboard;
// // convert to JPEG
// jpg.Create;
// jpg.Assign(PhotoImage.Picture);
// PhotoImage.Picture := jpg;
// freeAndNil(jpg);
end;
Die nicht kompilieren, da die Abtretung wird von zwei verschiedenen Arten. Ich verbrachte auch einige Zeit in die Zwischenablage zu kopieren versuchen, es in einen TMemoryStream ohne Erfolg.
Mein Nächster Versuch ist zu sparen, es vorübergehend zu einer Datei und rufen Sie anschließend als JPG -, aber das wird langsam sein, und ich bin mir nicht sicher, was ich versuche zu tun, ist möglich. Anstatt also den Kopf nach unten eine andere Gasse, dachte ich mir ich poste die Frage hier.
Die Datenbank in Frage, hat eine memo(1) Feld mit dem Namen " Foto, das PhotoImage verbunden ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Auf dieser Seite zeigt zumindest, wie konvertiert den Inhalt der Zwischenablage JPEG:
Dieser code ist Recht unvollständig, und ich bin mir nicht sicher, ob es richtig ist, aber die Methoden, die verwendet werden, sollten richtig sein und es sollte nicht so schwer sein das zu korrigieren (cf_BitMap sollte ein HBITMAP, zum Beispiel, und Sie brauchen nicht die "CopyToClipboardBitmap" Linie, wie Sie scheinen, haben bereits die Daten dort gespeichert).
Sie sollten auch einen Blick auf die Klasse TJPEGImage, um die Bildqualität und andere Parameter auf Werte, die Ihren Bedürfnissen entsprechen.
Wenn Sie wollen, um diese in Echtzeit für große Bilder sollten Sie jedoch besser nach einigen JPG-Bibliothek, die Sie verwenden können. Es könnte einige, die besser sind als die Delphi-Routinen.
Hier ist ein Auszug von etwas code, den ich schrieb vor ein paar Jahren verarbeiten von JPEG-Bildern. Es zeigt das laden und speichern von jpeg-Dateien, speichern und abrufen von jpeg-Daten aus einem blob-Feld, und konvertieren zwischen den Formaten jpeg und bmp.
Den '_proper' Prozedur veranschaulicht, re-komprimieren Sie ein Bild aus einer JPEG -> BMP - - > JPEG. Die '_update_display' Prozedur zeigt, wie Sie zeichnen ein TJpegImage auf einer Leinwand, so dass der Benutzer es sehen können.