AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Prism Bitmap.Save mit ImageFormat in .net 1.1
Thema durchsuchen
Ansicht
Themen-Optionen

Bitmap.Save mit ImageFormat in .net 1.1

Ein Thema von merlin17 · begonnen am 3. Sep 2007 · letzter Beitrag vom 5. Sep 2007
Antwort Antwort
merlin17

Registriert seit: 15. Dez 2002
Ort: Mittelfranken
980 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Bitmap.Save mit ImageFormat in .net 1.1

  Alt 3. Sep 2007, 17:46
Hallo,

im .net-Framework kann ich problemlos ein Bitmap mit nachfolgendem Code als BMP oder JPEG etc. speichern...

bmp.Save('c:\dp.bmp',System.Drawing.Imaging.ImageF ormat.BMP);

Aber in .net 1.1 (jaaa. ich habe hier "nur" BDS2006 und auch auf der Zielmaschine .net 1.1 )
gibt es diese Möglichkeit leider nicht. Welche Alternative gibt es in 1.1 für dieses Problem ?


Danke für jeden Tipp!!



thomas
- TeamNevrona cannot respond to questions received via email -
http://rave-notes.blogspot.com
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#2

Re: Bitmap.Save mit ImageFormat in .net 1.1

  Alt 3. Sep 2007, 19:23
Hallo,

ich habe in der NET1.1-Doku nachgeschaut und gefunden:
Zitat:
Image.Save-Methode (String, ImageFormat)
Speichert dieses Image-Objekt im angegebenen Format in der angegebenen Datei.
Bitmap ist von Image abgeleitet, und in der Liste der Bitmap-Member ist Save ebenfalls aufgeführt. Auch in meinem Buch zu Delphi 2005 (Doberenz/Gewinnus) gibt es ein Beispiel, das genau Deinem Code entspricht.

Vielleicht liegt Dein Problem nicht beim Speichern, sondern beim Erzeugen der Bitmap? Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
merlin17

Registriert seit: 15. Dez 2002
Ort: Mittelfranken
980 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

Re: Bitmap.Save mit ImageFormat in .net 1.1

  Alt 4. Sep 2007, 10:19
ich gebe zu, ich gehöre eher zur datenbank-fraktion und nicht zum GAS-Bereich (GrafikAnimationSound).

hier mein Codeschnipsel: (das ergebnis ist aber PNG und nciht BMP aber ich will BMP ...)

Danke schon im Voraus für jede Hilfe!!!

thomas


Delphi-Quellcode:
procedure TWFConvert.Button1_Click(sender: System.object;
  e: System.EventArgs);
var
  t: TiffManager;
  i: Image;
  bmp: Bitmap;
  g: Graphics;
begin
  if ParamCount > 0 then
  begin
    try
      t := TiffManager.Create(TextBox1.Text);
      i := t.GetSpecificPage(0);
      bmp := Bitmap.Create(i.Width, i.Height);
      g := Graphics.FromImage(bmp);
      g.DrawImage(i, 0, 0, i.Width, i.Height);
      bmp.Save(TextBox2.Text); // >> wird aber nur PNG
//bmp.Save('bb',System.Drawing.Imaging.ImageFormat.BMP);
    finally
      t.Free;
      i.Free;
      g.Free;
      bmp.Free;
    end;
  end;
end;
- TeamNevrona cannot respond to questions received via email -
http://rave-notes.blogspot.com
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#4

Re: Bitmap.Save mit ImageFormat in .net 1.1

  Alt 4. Sep 2007, 10:46
Hallo Thomas,

wenn Du ohne Format-Angabe speicherst, dann wird es standardmäßig zu PNG. Das ist verständlich, weil dies ein "besseres" und neueres Format ist.

Aber was passiert denn genau, wenn Du es ausdrücklich als BMP speichern willst?
Delphi-Quellcode:
TextBox2.Text = 'c:\dp.bmp'; // mit der richtigen Extension
bmp.Save(TextBox2.Text, System.Drawing.Imaging.ImageFormat.BMP);
Wird die Grafik überhaupt nicht gespeichert? Wird sie automatisch zu PNG? Darfst Du in das angegebene Verzeichnis schreiben? (Das kann man beim Entwickler voraussetzen, aber wer weiß...) Füge doch zusätzlich einen try-except-Block ein und lass Dir die Exception ausgeben (sofern vorhanden).

Jürgen

PS. Ich bin ebenfalls ein "Datenbänker", aber für FormPrint as a simple class (was es unter Delphi gab, aber nicht unter NET) habe ich mich etwas mit Grafik beschäftigt.
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
merlin17

Registriert seit: 15. Dez 2002
Ort: Mittelfranken
980 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

Re: Bitmap.Save mit ImageFormat in .net 1.1

  Alt 4. Sep 2007, 12:45
Hallo Jürgen,

er akzeptiert nach Drawing das .Imaging.ImageFormat.BMP nicht...
Kannst Du einmal das von Dir erwähnte codeschnipselchen aus dem Doberanz-Buch einfügen ?


thomas
- TeamNevrona cannot respond to questions received via email -
http://rave-notes.blogspot.com
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#6

Re: Bitmap.Save mit ImageFormat in .net 1.1

  Alt 4. Sep 2007, 13:17
Zitat von merlin17:
Hallo Jürgen,

er akzeptiert nach Drawing das .Imaging.ImageFormat.BMP nicht...
Kannst Du einmal das von Dir erwähnte codeschnipselchen aus dem Doberanz-Buch einfügen ?
Das bringt doch nichts (ich hatte nicht genau genug hingesehen), weil auch dort als PNG gespeichert wird.

Aber ich muss/kann noch etwas genauer fragen:
  • Wird bereits bei der Eingabe gemeckert?
  • Wird das .Imaging moniert, das .ImageFormat oder erst das .BMP?
  • Kannst Du dies schreiben, aber bei Intellisense wird es nicht angeboten? Welche Stelle genau?
  • Oder meckert der Compiler? Welche Fehlermeldung genau?
  • Oder funktioniert es erst zur Laufzeit nicht?
  • Was und wie genau (siehe Vorschlag mit Exception)?
Die Referenz auf System.Drawing.Dll ist ja wohl zugewiesen...

Ich erinnere mich nicht genau, aber mir ist so, als ob unter Delphi.NET die Verwendung von Namespace und uses nicht klar genug geregelt ist. Du benötigst zwei Namespaces: System.Drawing und (zusätzlich, unabhängig davon) System.Drawing.Imaging. Die Namespaces hängen zwar miteinander zusammen und bauen sinnvoll aufeinander auf; es gibt aber keine unmittelbare Hierarchie: Wenn Du "uses System.Drawing" schreibst (oder wie die genaue Formulierung ist), steht "System.Drawing.Imaging" trotzdem noch nicht zur Verfügung!

Gruß Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
merlin17

Registriert seit: 15. Dez 2002
Ort: Mittelfranken
980 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

Re: Bitmap.Save mit ImageFormat in .net 1.1

  Alt 4. Sep 2007, 13:35
Jürgen,

es läuft

Dein letzter Tip war goldrichtig:
uses "System.Drawing.Imaging" fehlte (es sind doch unterschiede zwischen ObjectPascal.net und C#....)



thomas
- TeamNevrona cannot respond to questions received via email -
http://rave-notes.blogspot.com
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#8

Re: Bitmap.Save mit ImageFormat in .net 1.1

  Alt 5. Sep 2007, 09:23
Zitat von merlin17:
es läuft

Dein letzter Tip war goldrichtig:
uses "System.Drawing.Imaging" fehlte (es sind doch unterschiede zwischen ObjectPascal.net und C#....)
Das war mir sozusagen auf den letzten Drücker eingefallen: Borland hatte eine Reihe von Klimmzügen machen müssen, um die Anforderungen von NET (u.a. die Verwendung der Namespace-Struktur) mit der eigenen Sprache (u.a. der uses-Anweisung) kompatibel zu machen.

Freut mich, dass ich (auch als Delphi-Abtrünniger) helfen konnte! Jürgen

PS. Zurzeit gibt es in meiner Gegend Probleme mit DSL-Verbindungen; gestern kam ich ab 14 Uhr überhaupt nicht mehr ins Netz. Sonst hätte es diese Abschlussbemerkung schon viel früher gegeben.
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:46 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