AGB  ·  Datenschutz  ·  Impressum  







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

Graphic32: Bild ist schwarz nach SetSize

Ein Thema von Die Muhkuh · begonnen am 19. Apr 2005 · letzter Beitrag vom 20. Apr 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#1

Graphic32: Bild ist schwarz nach SetSize

  Alt 19. Apr 2005, 21:14
Hi,

ich lade ein Bild in ein TBitmap32. Nach dem laden rufe ich SetSize auf und speichere das Bild ab. Aber das Bild ist schwarz.

Code:

Delphi-Quellcode:
Pic := TBitmap32.Create;
Pic.StretchFilter := sfLanczos;
Pic.LoadFromFile(edDir.Text + aName);
Pic.SetSize(640, 480);
Pic.SaveToFile(edSaveAs.Text + aName);
Pic.Free;
(Da fehlen dsas try und finally, ist aber im Code vorhanden)

Hab ich irgendwo noch ein Bock?

[edit]Delphi-Tags richtig gesetzt. Pfui, pfui, Mods, keiner hats gemerkt :mrsblue: [/edit]
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Graphic32: Bild ist schwarz nach SetSize

  Alt 20. Apr 2005, 03:09
So kannst du kein Bild mit der gr32 vergrößern/verkleinern. Du brauchst 2 Bitmap32. In eines lädsts du dein Original. Dann den StretchFilter (ich weiss nicht mehr in welchem der beiden) setzen, und dann das Original mittels TBitmap32.Draw(To) auf das zweite in Zielgröße drauf packen.
Das dann abspeichern, und fertig.
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Graphic32: Bild ist schwarz nach SetSize

  Alt 20. Apr 2005, 13:12
Hi Fabian,

ich werde es ma versuchen und (wenn ich die Lösung hab) hier posten
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Graphic32: Bild ist schwarz nach SetSize

  Alt 20. Apr 2005, 13:39
Hi,

ich hab das jetzt mal so gemacht, wie Fabian es sagte:

Delphi-Quellcode:
Pic := TBitmap32.Create;
TempPic := TBitmap32.Create;

try
  Pic.Draw(320, 240, Pic);
  //Pic.DrawTo(TempPic, 320, 240); Geht bei dem auch nicht.
  TempPic.SaveToFile(edSaveAs.Text + aName);
finally
  Progress.StepBy(1);
  FreeAndNil(Pic);
  FreeAndNil(TempPic);
end;
Aber jetzt lässt sich das gespeicherte Bild nicht mehr öffnen. Es wird zwar als Jpg abgespeichert, aber es kommt immer "Keine Vorschau verfügbar".

Hab das ganze versucht mit IrfanView zu öffnen und der meldet folgendes:

Code:
---------------------------
IrfanView
---------------------------
G:\Bilder\Berlin2005\Bilder geändert\IMG0-102.JPG : Kann Dateiheader nicht lesen!

Unbekanntes Bildformat !
---------------------------
OK  
---------------------------
Tja...

Was könnte ich nun tun?
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#5

Re: Graphic32: Bild ist schwarz nach SetSize

  Alt 20. Apr 2005, 14:08
Bist du dir sicher, dass bei DrawTo die Größe des Destination-Bitmaps angepasst wird ?
Schau dir mal zur Laufzeit die Größe von TempPic an oder versuch auch mal, es als BMP zu speichern.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Graphic32: Bild ist schwarz nach SetSize

  Alt 20. Apr 2005, 14:10
tja, keine Ahnung. Ich hab einfach ma beides gestest. Aber ich kann das ja nicht sehen, da der Header fehlt und ich keine Informationen über das Bild bekomme.

Das mit dem BMP ist keine schlechte idee. werd ich mal machen
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#7

Re: Graphic32: Bild ist schwarz nach SetSize

  Alt 20. Apr 2005, 14:18
Ich sehe gerade, dass du deinen Code geändert hast:
//Pic.DrawTo(TempPic, 320, 240); Geht bei dem auch nicht. Was meinst du damit? Ohne diese Zeile wird jedenfalls gar nichts in TempPic kopiert, Pic.Draw eins weiter oben kopiert ja in sich selbst .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Graphic32: Bild ist schwarz nach SetSize

  Alt 20. Apr 2005, 14:22
Zitat von Khabarakh:
Ich sehe gerade, dass du deinen Code geändert hast:
//Pic.DrawTo(TempPic, 320, 240); Geht bei dem auch nicht. Was meinst du damit? Ohne diese Zeile wird jedenfalls gar nichts in TempPic kopiert, Pic.Draw eins weiter oben kopiert ja in sich selbst .
Hi,

sorry. Ich hab vergessen das vorher schon auszuklammern. Wollte damit andeuten, dass ich es sowohl mit Draw als auch mit DrawTo probiert habe, welches aber auch nicht ging.

Das mit Pic.Draw hab ich auch schon gesehen und verbessert (allerdings nicht hier in der DP), aber an dem lags auch nicht.

Aber ich hab zumindest ein Teilfehler gefunden.

Das ganze musste so heißen:

Delphi-Quellcode:
Pic := TBitmap32.Create;
TempPic := TBitmap32.Create;

try
  TempPic.SetSize(320, 240);
  Pic.DrawTo(TempPic, 320, 240); Geht bei dem auch nicht.
  TempPic.SaveToFile(edSaveAs.Text + aName);
finally
  Progress.StepBy(1);
  FreeAndNil(Pic);
  FreeAndNil(TempPic);
end;
Jetzt klappt zwar das abspeichern, aber das Bild ist immernoch schwarz.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#9

Re: Graphic32: Bild ist schwarz nach SetSize

  Alt 20. Apr 2005, 14:26
Ich denke, es sollte Pic.DrawTo(TempPic, 0, 0) heißen, so kopierst du es ja außerhalb von TempPic .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Graphic32: Bild ist schwarz nach SetSize

  Alt 20. Apr 2005, 14:30
Zitat von Khabarakh:
Ich denke, es sollte Pic.DrawTo(TempPic, 0, 0) heißen, so kopierst du es ja außerhalb von TempPic .
Hi,

danke. Jetzt sind wa soweit, dass ein 320x240 großes Stückchen des Bildes abgespeichert wird. Jetzt muss ich bloß noch schaffen, dass das Bild kleiner gemacht wird.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:23 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