AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

bmp speichern

Ein Thema von Nisbo · begonnen am 21. Mär 2005 · letzter Beitrag vom 31. Mär 2005
Antwort Antwort
Seite 2 von 3     12 3      
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: bmp speichern

  Alt 21. Mär 2005, 20:37
Moin Jens,

ich habe das gerade mal mit Lazarus getestet: Bild wurde korrekt gespeichert.
Wie kommt denn das, was Du speichern willst in das Image rein?

Ausserdem habe ich den kompletten Pfad, also inclusive Laufwerk und Verzeichnis, mit angegeben.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Nisbo

Registriert seit: 10. Mär 2005
191 Beiträge
 
Delphi 5 Standard
 
#12

Re: bmp speichern

  Alt 22. Mär 2005, 05:59
@ Luckie

wo mache ich was ?
ich habe nur diesen Code:
Delphi-Quellcode:
// Speichern
procedure TForm7.speichern(Sender: TObject);
begin
     try
        Image1.Picture.SaveToFile('TestBitmap.bmp');
     finally
        ShowMessage('Bild wurde gespeichert.');
     end;
end;
das Bild it selber ein Screenshot welcher in Image1 geladen wird (Screenshot wird mit dem Programm gemacht, also nicht aus einer datei geladen) hier der erste Code dazu:

Delphi-Quellcode:
// Screenshot
procedure TForm7.Button3Click(Sender: TObject);
var tempBild: TBitmap;
begin
   WindowState := wsminimized;
   Image1.picture := nil;
   tempBild := TBitmap.Create;
   Sleep(1000);
   ScreenShot(tempBild,Edit2.Text,Edit1.Text,Edit3.Text,Edit4.Text);
   Image1.Picture.Assign(tempBild);
   tempBild.Free;
   WindowState := wsNormal;
   Form7.BringToFront;
   SetForegroundWindow(FindWindow(nil,'Screenshot'));
end;
die Procedur ScreenShot schau dann so aus:

Delphi-Quellcode:
procedure ScreenShot(var Bild: TBitMap; startX2 : string; startY2 : string; endeX2 : string; endeY2 : string);
var
  Mydc : cardinal;
  MausPos : TPoint;
  startX, startY, endeX, endeY : integer;
  startX1, startY1, endeX1, endeY1 : integer;
begin

     startX := strtoint(startX2);
     endeX := strtoint(endeX2);
     startY := strtoint(startY2);
     endeY := strtoint(endeY2);

     startX1 := startX;
     endeX1 := endeX;
     startY1 := startY;
     endeY1 := endeY;

     if startX > endeX then
        begin
          startX := endeX1;
          endeX := startX1;
        end;

     if startY > endeY then
        begin
          startY := endeY1;
          endeY := startY1;
        end;


     MyDc := GetDC(0);
     GetCursorPos(MausPos);
     Bild.PixelFormat := pf32bit;

      begin
         Bild.Width := endeX - startX;
         Bild.Height := endeY - startY;

         if Bild.Width < 0 then Bild.Width := Bild.Width * -1;
         if Bild.Height < 0 then Bild.Height := Bild.Height * -1;

         BitBlt(Bild.Canvas.Handle,0,0,endeX,(Screen.Height - startY),Mydc,startX,startY,SRCCOPY);
         
      end;
      ReleaseDC(0, Mydc);
end;
also damit lade ich den Screenshot in Image1
liegt da vielleicht irgendwo das Problem ?

@ Christian Seehase

an dem Patrh sollte es nicht liegen, das Bild wird ja angelegt, ist halt nur schwarz
welche Version von Lazarus verwendest du denn ? ich habe den SnapShot vom 21.03.2005 genommen also immer das aktuellste was es gibt
Jens
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: bmp speichern

  Alt 22. Mär 2005, 18:42
Moin Jens,

ich habe hier die 0.94 beta vom 03.01.2005.

Mit der kann ich Dein Beispiel noch nicht einmal nachvollziehen, da diese Version schon TBitmap.Create nicht kennt.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: bmp speichern

  Alt 22. Mär 2005, 20:17
Frage: Kann es irgendwie sein, dass das Bild zum Zeitpunkt des Abspeicherns noch immer nil ist?
Manuel Eberl
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#15

Re: bmp speichern

  Alt 22. Mär 2005, 20:34
Mit der Meldung würde ich das auch eher so schreiben:
Delphi-Quellcode:
procedure TForm7.speichern(Sender: TObject);
begin
  try
    Image1.Picture.Bitmap.SaveToFile('TestBitmap.bmp');
    ShowMessage('Bild wurde gespeichert.');
  except
    ShowMessage('Bild konnte nicht gespeichert werden.');
  end;
end;
Sonst zeigt er doch die Meldung auch an, wenn das Bild nicht ordnungsgemäß gespeichert wurde...
Alexander
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: bmp speichern

  Alt 22. Mär 2005, 20:45
Moin Jens,

versuch' doch mal die Bitmap direkt, also ohne Umweg über Image zu speichern.
TBitmap kennt schliesslich auch eine Methode SaveToFile.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Nisbo

Registriert seit: 10. Mär 2005
191 Beiträge
 
Delphi 5 Standard
 
#17

Re: bmp speichern

  Alt 23. Mär 2005, 07:43
@ Alexander

habe jetzt mal deinen Code drinn, Bild wird gespeichert

@ Christian Seehase

was soll ich machen ?

@ all

habe jetzt mal nur einen screenshot von einem windowsordner gemacht, sprich von dem gelben icon, also sehr klein, das ergebnis ist ein bild in dieser größe, allerdings ist das jetzt nicht mehr komplett schwarz sondern sehr dunkel mit einigen farblichen stellen, ich hänge das bild hier mal an
Angehängte Grafiken
Dateityp: bmp testbitmap_697.bmp (1,1 KB, 20x aufgerufen)
Jens
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#18

Re: bmp speichern

  Alt 23. Mär 2005, 07:56
Sieht denn der Screenshot im Image richtig aus? Also ohne zu speichern?
Hast du schon mal einfach:
Image1.Picture.SaveToFile(); probiert? Auch wenn wahrscheinlich einfach nur die Methode im bitmap aufgerufen wird.
Alexander
  Mit Zitat antworten Zitat
Nisbo

Registriert seit: 10. Mär 2005
191 Beiträge
 
Delphi 5 Standard
 
#19

Re: bmp speichern

  Alt 23. Mär 2005, 08:40
Hier habe ich schon mal nen ScreenShot gepostet, das funktioniert alles, nur das speichern nicht:
http://www.delphipraxis.net/download.php?id=10628

Image1.Picture.SaveToFile(); oder besser:

Image1.Picture.SaveToFile('TestBitmap.bmp'); habe ich auch schon versucht, das interessante war ja der kleine screenshot denn der war nicht mehr komplett schwarz (einfach mal ansehen)
Jens
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#20

Re: bmp speichern

  Alt 23. Mär 2005, 09:31
Habe ich schon geschrieben und dass du den String noch einfügen musst, ist ja klar.
Ich weiß momentan leider nicht weiter, eigentlich sollte es funktionieren.
Du könntest aber mal dein Programm-Source hochladen, evtl. können wir so besser helfen...
Alexander
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz