OpBitmap mit Formaten Version 1.0
Re: OpBitmap mit Formaten Version 1.0
Habe keine Probleme mit
Lazarus 1.1 r40260:41998M FPC 2.7.1 x86_64-linux-gtk 2
Lazarus 1.1 r40260:41998M FPC 2.7.1 x86_64-linux-gtk 2
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: OpBitmap mit Formaten Version 1.0
Ich habe hier amd, kann es daran liegen? Ich werde es noch mal mit einem komplett neuen Projekt versuchen, vielleicht liegt es ja nur am Projekt selbst und gar nicht direkt an OpBitmap.
Edit01: Ich habe eine neuere Lazarus Version. Letzten erst habe ich die SVN Version geupdatet, vielleicht kann es daran liegen?
Edit01: Ich habe eine neuere Lazarus Version. Letzten erst habe ich die SVN Version geupdatet, vielleicht kann es daran liegen?
MFG
Michael Springwald
Michael Springwald
Re: OpBitmap mit Formaten Version 1.0
Naja, hat ja mit dem Parser zu tun. Vllt. Abhängig vom Modus (objfpc, delphi...).
Ist ja aber kein Ding, dann löschst du halt das Auskommentierte und gut ist.
Ist ja aber kein Ding, dann löschst du halt das Auskommentierte und gut ist.
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: OpBitmap mit Formaten Version 1.0
Aber das ist ja nicht alles. Soll ich auch die ganzen ASM Blöcke löschen? Ich denke, die haben schon ein Grund, das es die gibt.
MFG
Michael Springwald
Michael Springwald
Re: OpBitmap mit Formaten Version 1.0
Ich weiss nicht was du machst, aber wenn du wie empfohlen opbitmapforlazcompat.lpk verwendest, ist da kein ASM.
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: OpBitmap mit Formaten Version 1.0
Ich verwende es ohne es zu Installieren, einfach nur die Units.
Ich glaube ich werde einen anderen Weg gehen.... Eine Lib muss man meiner Meinung auch verwenden können ohne sie in Lazarus Direkt Installieren zu müssen.... ich meine das ging auch bei OpBitmap... oder täusche ich mich da?
Ich glaube ich werde einen anderen Weg gehen.... Eine Lib muss man meiner Meinung auch verwenden können ohne sie in Lazarus Direkt Installieren zu müssen.... ich meine das ging auch bei OpBitmap... oder täusche ich mich da?
MFG
Michael Springwald
Michael Springwald
Re: OpBitmap mit Formaten Version 1.0
Ja.pluto hat geschrieben:oder täusche ich mich da?
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: OpBitmap mit Formaten Version 1.0
OK! Dann Probiere ich das mal aus....
Aber mich wundert dann, wenn man es Installiert, das dann wahrscheinlich die Fehler Meldungen von FPC verschwunden sind. Kann mir nicht vorstellen, dass es da einen Zusammenhang gibt, wenn er beim Kompilieren einige Units nicht finden würde, ok, aber bei sowas?
Aber ich weiß schon, warum ich inzwischen ungere Fremd LIBS verwende... Nichts gegen dich oder dein Projekt....
Aber mich wundert dann, wenn man es Installiert, das dann wahrscheinlich die Fehler Meldungen von FPC verschwunden sind. Kann mir nicht vorstellen, dass es da einen Zusammenhang gibt, wenn er beim Kompilieren einige Units nicht finden würde, ok, aber bei sowas?
Aber ich weiß schon, warum ich inzwischen ungere Fremd LIBS verwende... Nichts gegen dich oder dein Projekt....
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 395
- Registriert: Sa 15. Mai 2010, 13:46
- CPU-Target: 64 bit
- Kontaktdaten:
Memory Leak
Hy, habe ein Memory-Leak entdeckt, jpegencoder.pas, Zeilen 681 und 682 müssen auskommentiert bzw. gelöscht werden, da der gleicher Aufruf weiter unten schon steht:
Code: Alles auswählen
For ii := Low (image_components) To High (image_components) Do
image_components [ii] := TJpegEncoderComponent.Create ;
Re: Memory Leak
Danke. Ich schaue mir das bei Gelegenheit mal an.MitjaStachowiak hat geschrieben:Hy, habe ein Memory-Leak entdeckt, jpegencoder.pas, Zeilen 681 und 682 müssen auskommentiert bzw. gelöscht werden, da der gleicher Aufruf weiter unten schon steht:Code: Alles auswählen
For ii := Low (image_components) To High (image_components) Do image_components [ii] := TJpegEncoderComponent.Create ;
-
- Lazarusforum e. V.
- Beiträge: 395
- Registriert: Sa 15. Mai 2010, 13:46
- CPU-Target: 64 bit
- Kontaktdaten:
Re: OpBitmap mit Formaten Version 1.0
Hy, habe noch was gefunden:
Ich habe ein Bild aufgenommen, bei dem TPicture.LoadFromFile immer abschmiert. Es passiert nur bei diesem Bild (bzw. einigen wenigen Bildern von meinem Fotoapparat); Verkleinern mit Paint hilft nicht, Exif entfernen schon. Auch Projekte, die kein OPBitmap verwenden, haben kein Problem. Offenbar interferiert OPBitmap mit der Graphics-Unit von Lazarus, jedenfalls in meinem aktuellen Projekt.
Ich bin der Sache dann nach gegangen und habe schließlich in der opbitmapformats.pas die Procedure MianoProgressMulitPass wie folgt ergänzt:
Jetzt dud's.
Da ich TPicture nur zum laden verwende, dachte ich mit, ich kann doch auch TJPEGImage direkt benutzen. Habe folgendes Versucht:
Aber das Resultat ist irgendwie halbtransparent/gestreift/komisch...
Was mache ich hier falsch?
Ich habe ein Bild aufgenommen, bei dem TPicture.LoadFromFile immer abschmiert. Es passiert nur bei diesem Bild (bzw. einigen wenigen Bildern von meinem Fotoapparat); Verkleinern mit Paint hilft nicht, Exif entfernen schon. Auch Projekte, die kein OPBitmap verwenden, haben kein Problem. Offenbar interferiert OPBitmap mit der Graphics-Unit von Lazarus, jedenfalls in meinem aktuellen Projekt.
Ich bin der Sache dann nach gegangen und habe schließlich in der opbitmapformats.pas die Procedure MianoProgressMulitPass wie folgt ergänzt:
Code: Alles auswählen
procedure MianoProgressMulitPass(code: TBitmapImageCoder; adata: PROGRESSDATA;
currentpass: Cardinal; passcount: Cardinal; description: string;
progress: Cardinal; var cancel: Boolean);
var Rec: TRect;
progr: Cardinal;
begin
if progress <> oldprogress then
begin
if (passcount = 0) then progr := 0 // msta: hier Null-Check
else progr := Round((currentpass - 1) / passcount * 100 + (progress / passcount));
TOPBitmap(Adata).OPProgress(TOPBitmap(Adata), opsRunning, progr, true, Rec, description);
oldprogress := progress;
end;
end;
Da ich TPicture nur zum laden verwende, dachte ich mit, ich kann doch auch TJPEGImage direkt benutzen. Habe folgendes Versucht:
Code: Alles auswählen
jpg := TJPEGImage.Create;
jpg.LoadFromFile(Source);
Original.Assign(jpg); // Original ist ein TCanvasOPBitmap
jpg.Free;
Was mache ich hier falsch?
- Dateianhänge
-
- Verkleinerung des Bildes, das zum Fehler führt.
- DSC00003.jpg (33.36 KiB) 8766 mal betrachtet
-
- Lazarusforum e. V.
- Beiträge: 395
- Registriert: Sa 15. Mai 2010, 13:46
- CPU-Target: 64 bit
- Kontaktdaten:
Re: OpBitmap mit Formaten Version 1.0
Hmm, TJPEGImage hat offenbar noch mehr Probleme. Ich habe jetzt die Unit FPReadJPEG so umgebogen, dass sie OPBitmaps einliest (Anhang). Das ist 3 Mal so schnell:
Code: Alles auswählen
uses JPEGtoOPBitmap, OPBitmap;
// ...
var
op : TCanvasOPBitmap;
jpg : TJPEGReader;
mStr : TMemoryStream;
fStr : TFileStream;
// ...
fStr := TFileStream.Create(_Source, fmOpenRead);
mStr := TMemoryStream.Create;
mStr.LoadFromStream(fStr);
fStr.Free;
op := TCanvasOPBitmap.Create;
jpg := TJPEGReader.Create;
jpg.ReadToOPBitmap(mStr, op);
jpg.Free;
mStr.Free;
- Dateianhänge
-
- ColorTools.pas
- Ein paar Farb-Definitionen
- (3.01 KiB) 301-mal heruntergeladen
-
- jpegtoopbitmap.pas
- JPEG to OPBitmap
- (10.61 KiB) 286-mal heruntergeladen