![]() |
D2010, TImage. SaveToFile error
Liste der Anhänge anzeigen (Anzahl: 2)
ich habe einen seltsamen Fehler beim Aufruf der Funktion TImage.Picture.Bitmap.SaveToFile ,
die Bitmap kommt in zwei Teilen zerlegt in der Datei an, eine "linke Spalte ca. 200 pixel" breit wird als rechte Spalte in der Bitmap abgespeichert. Anbei ein Beispielbild. (zusätzlich verwende ich TScollBox zur Anzeige von TImage) |
AW: D2010, TImage. SaveToFile error
Ich würde mal den Fehler außen herum suchen und nicht direkt im SaveToFile.
Bist Du sicher, dass Du das Bild vor dem Speichern korrekt vorliegen hast? Da Du eine ScrollBox erwähnst: Könnte es vielleicht sein, dass Du die Daten "falsch" vom Canvas kopierst...? |
AW: D2010, TImage. SaveToFile error
der testcode spielt fehlerfrei; scrollbars sind da und BMP wird korrekt angezeigt.
In der echten Anwendung wird im Hintergrund viel mit atempbmp gemacht,
Delphi-Quellcode:
processFunctions ( atempbmp )
atempbmp.savetoFile( ......) // geht auch noch ...... Image1.Picture.Bitmap.Assign(atempbmp); Image1.Picture.Bitmap.SaveToFile('c:\temp\out2.bmp'); // geht falsch
Delphi-Quellcode:
unit Unit_savebmp;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) ScrollBox1: TScrollBox; Image1: TImage; Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private-Deklarationen } public { Public-Deklarationen } atempbmp : TBitmap; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Image1.Picture.LoadFromFile('c:\temp\out.bmp'); atempbmp.Assign( Image1.Picture.Bitmap); end; procedure TForm1.Button2Click(Sender: TObject); begin Image1.Picture.Bitmap.Assign(atempbmp); Image1.Picture.Bitmap.SaveToFile('c:\temp\out2.bmp'); end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin atempbmp.Free; end; procedure TForm1.FormCreate(Sender: TObject); begin atempbmp :=TBitmap.Create; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz