vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
New Bitmap - Ungültiger Parameter 
Autor: BasicOpa
Datum: 21.09.15 14:57

Ein herzliches Hallo an die Spezialisten,

ich habe folgendes Problem und hoffe auf Hilfe:

Dim GpX as Integer = 39969
Dim GpY as Integer = 40800
...
...
Dim Gleisplan As New Bitmap(GpX, GpY, _
  System.Drawing.Imaging.PixelFormat.Format32bppArgb)
Ausnahme: "Ungültiger Parameter"

Wenn ich die Code-Zeile wie folgt verändere bricht das Programm mit der selben Ausnahme ab:

Dim Gleisplan As New Bitmap(GpX, GpY, _
  System.Drawing.Imaging.PixelFormat.Format64bppArgb)


Ich verwende (noch) VB.NET 2005

Fragen: Welcher Parameter ist ungültig? Wie kann das Problem gelöst werden?

Ich bin für jede Hilfe sehr dankbar!
Beste Grüße
BasicOpa

Beitrag wurde zuletzt am 21.09.15 um 14:59:02 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: New Bitmap - Ungültiger Parameter 
Autor: Manfred X
Datum: 21.09.15 15:31

Hallo!

40000 * 40000 Pixel sind vielleicht ein wenig zu viel.
Eventuell mußt Du die Zeichnung in Teile-Bilder gliedern.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: New Bitmap - Ungültiger Parameter 
Autor: GPM
Datum: 21.09.15 15:43

Die Fehlermeldung kommt bei einer zu großen Bitmap.
Deine Bitmap würde einen zusammenhängenden Speicherblock
von 6 GByte belegen. Bei mir mit 8 GByte Arbeitsspeicher
liegt die Grenze bei ca. 18000 x 18000 Pixel (32bpp).

MfG GPM
0
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: New Bitmap - Ungültiger Parameter 
Autor: Manfred X
Datum: 21.09.15 15:56

Vielleicht nutzt Du auch die falsche Größenskala.
Wenn Du von VB6 kommst, kennst Du eventuell noch
die Einheit TWIPS (ca. 15 Pixel).

Du kannst bei einer Bitmap auch noch DPI-Parameter setzen
(Dots per Inch), die die Auflösung bestimmen (SetResolution).




Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: New Bitmap - Ungültiger Parameter 
Autor: BasicOpa
Datum: 21.09.15 16:14

Hallo GPM,

vielen Dank für die Antwort. Jetzt habe ich aber zwei Zusatzfragen:

1. Wie errechnen sich jene 6 GB?

2. Hängt dieser Speicherbedarf mit der Darstellungs-Qualität zusammen. Und daraus abgeleitetet, kann man eine niedrigere, Qualität wählen und damit den Speicherbedarf reduzieren. Laienhaft kommt mir der Unterschied zwischen *.bmp und *.jpg - Bildern in den Sinn? Oder müsste dann statt einer Bitmap zwecks Darstellung eines Bildes etwas anderes eingesetzt werden?

Wahrscheinlich laienfafte Fragen . sorry

Hallo Manfred,

auch dir vielen Dank.
Mein "Bauch" sagt mir, dass mit dem was du ausgeführt hast vielleicht eine Lösung meines Problems in Sicht ist. Ich müsste nur noch wissen, wie mein Code verändert werden müsste. Kann mir da geholfen werden, ohne auf umfangreiche Dokumentationen zu verweisen?

Beste Grüße
BasicOpa
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: New Bitmap - Ungültiger Parameter 
Autor: Manfred X
Datum: 21.09.15 16:27

Der Speicherbedarf einer Bitmap ist durch die Angabe
des Pixelformats 32bpp (=bits per Pixel) direkt gegeben.
(= 40000 Pix * 40000 Pix * 32 BitproPix)

Die Zahl der Pixel gibt an, wie viele unterscheidbare Bildpunkte
bei der Gestaltung zur Verfügung stehen.
DPI gibt an, in welche physikalische Größe diese Bildpunkte
(z.B. beim Druck) umgesetzt werden = wie viele Pixel pro Inch
benutzt werden.

Wofür benötigst Du so viele Bildpunkte? Hast Du derart viele Details
umzusetzen?

Schau Dir mal die Pixelformate an. Bei einer geringeren Anzahl
von möglichen Farb-Abstufungen wird erheblich weniger Speicherplatz
benötigt.
https://msdn.microsoft.com/en-us/library/system.drawing.imaging.pixelformat%28v=vs.110%29.aspx

JPEG ist ein Format, durch das eine Bitmap beim Speichern
durch ein Ersatzbild AUSGETAUSCHT wird, das so konstruiert ist,
daß es möglichst wenig Speicherplatz benötigt - auf der Festplatte.
Das bezieht sich nicht auf die Bearbeitung im Hauptspeicher,
weil dort der direkte Zugriff auf einzelne Bildpunkte erforderlich ist.

Beitrag wurde zuletzt am 21.09.15 um 16:58:05 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: New Bitmap - Ungültiger Parameter 
Autor: BasicOpa
Datum: 21.09.15 17:12

Hallo Manfred,

bei meinem Problem geht es nicht um eine besonders gute Qualität der Darstellung. Es handelt sich um einen Gleisplan, also vorwiegend um schwarze Linien. Aber die Grundfläche kann in einzelnen Fällen - wie in meinem Beispiel - sehr groß sein.

Beste Grüße
BasicOpa
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: New Bitmap - Ungültiger Parameter 
Autor: Manfred X
Datum: 21.09.15 17:25

Das Problem liegt in Deiner Aussage die Grundfläche sei "sehr groß".
Was ist damit gemeint?

Geht es um das Format des Ausdrucks? (SetResolution)
Oder umfaßt der Plan viele tausend Linien unterschiedlicher
Stärke, so daß eine entsprechend hohe Anzahl von Bildpunkten nötig ist?

Im letzten Fall wäre es erforderlich, den Plan in Teile zu gliedern
(z.B. nur den jeweils benötigten Bildausschnitt laden)
weil eine effiziente Bearbeitung sonst kaum möglich ist.

Wenn Du mit dem Graphics-Objekt arbeiten willst, kannst Du keine indizierten
Pixelformate nutzen.
In Deinem Fall würde ich zu einem 8bppindexed raten (=256 Farben in einer Palette).
Zur Bearbeitung dieses speichersparenden Formats benötigst Du aber spezielle Instrumente.

http://www.codeproject.com/Articles/70442/C-RGB-to-Palette-Based-bit-Greyscale-Bitmap-Clas

https://social.msdn.microsoft.com/Forums/en-US/0c049c3c-a576-464e-9e35-5c670da86049/how-to-render-8bit-indexed-bitmap-using-gdigdi?forum=vcgeneral

Beitrag wurde zuletzt am 21.09.15 um 17:48:59 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: New Bitmap - Ungültiger Parameter 
Autor: BasicOpa
Datum: 21.09.15 18:47

Hallo Manfred,

einmal mehr herzlichen Dank für deine Hilfe.
Ich werde mir jetzt in aller Ruhe und mit der nötigen Geduld die empfohlene Literatur vornehmen - und weitersehen.

Beste Grüße
BasicOpa
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel