AGB  ·  Datenschutz  ·  Impressum  







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

Riesige Bitmaps erzeugen

Ein Thema von Neutral General · begonnen am 4. Sep 2015 · letzter Beitrag vom 5. Sep 2015
Antwort Antwort
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.221 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Riesige Bitmaps erzeugen

  Alt 4. Sep 2015, 19:35
Ich schmeiss mal Durchgehenden Adressraum und 32 Bit in den Raum. Unter 64 dürftwn hier keine Problene vorhanden sein
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.688 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: Riesige Bitmaps erzeugen

  Alt 4. Sep 2015, 20:06
Es gibt/gab mal die Begrenzung der GDI auf 32768x32768 Pixel Größe (oder 65536x65536, weiss das nicht mehr zu 100%). Ob, wann, wo und wie das aber bei .NET eine Auswirkung hat: Keine Ahnung. Lange bevor man diese Größe erreicht, dürften wohl die von Bernhard genannten Dinge zuschlagen. (Grund war imho dafür, dass das alte BMP Dateiformat auch nicht mehr konnte, und dieses ist ja stark mit den Interna der GDI verheiratet.)

@Perlsau: So viele Pixel braucht man da gar nicht wie man meint. Druckauflösung ist meist 150 oder 300 DPI, im Posterdruck eher 150. 100x70cm sind ca. 40x28inch, das heisst bei 150 DPI brauchst du ein 6000x4200 Pixel Bild, was z.B. schon meine Kamera mit 6000x4000 fast genau macht. Und die Bilder sind kein Problem. (Rund 100MB im Speicher.) Bei 300 DPI brauchst du ein 12000x8400 Pixel Bild, woduch man mit ca. 400MB einen guten Happen größer wird, aber auf aktuellen Systemen klingt das absolut ohne Tricks und Kniffe machbar.

Darüber hinaus würde es aber langsam Sinn machen, sich vom Windows Bitmap (lies: der GDI) zu verabschieden, und ein ganz eigenes Subsystem auf Basis von gekachelten Segmenten zu erstellen. (Zum Zeichnen kann man da entsprechend verkleinerte Versionen erstellen!) Hier verbirgt sich dann aber auch die Arbeit von Mannwochen hinter. (Und ich bin recht sicher, dass Photoshop u.ä. intern ähnliches benutzen.)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Riesige Bitmaps erzeugen

  Alt 4. Sep 2015, 21:28
Hallo,

Also bei .NET kam die Exception "Invalid Parameter" wenn man das Bitmap zu groß gemacht hat. (System.Drawing.Bitmap). Habe mir jetzt ne minimalistische Bitmap-Klasse erstellt. Muss ja eh nur auf die rohen Bitmap Daten zugreifen (Scanline quasi) von daher brauche ich auch keine Canvas Funktionalität o.ä.

Der Bitmap Header ist ja sehr simpel und dann noch ein 2D Pixel-Array und das wars.
Kann damit so groß speichern wie ich will Waren auch nur ein paar zusätzliche Zeilen für meine Bitmap-Klasse.

Hab (aus Langeweile) ein Mandelbrot Generator gebaut und wollte ein riesiges Mandelbrot generieren was so groß ist dass man auch die Details sehen kann die man ansonsten nur durch reinzoomen sieht

15000x10000 war kein Problem. Allerdings verweigert Paint bei solchen Dateien den Dienst. Irfan View kam aber mit meinen selbstgemachten großen Bitmaps klar.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#4

AW: Riesige Bitmaps erzeugen

  Alt 5. Sep 2015, 10:13
Das erinnert mich an die Frage, eine Tabelle mit 1.000.000 Datensätzen in einem Grid anzeigen zu wollen. Wie lautet da die naheliegende Gegenfrage? Wer braucht das? Eben: Niemand. Weil niemand die 1Mio Datensätze auf einmal sehen kann.

Genauso verhält es sich mit einer Bitmap, die größer als die Auflösung des Bildschirms ist. Die benötigt man auch nicht. Denn sehen kann man die nicht. Das nur mal so nebenbei.

Was hält einen davon ab, eine virtuelle Bitmap zu bauen, die beliebig groß sein kann, von mir aus 100Mio x 100Mio Pixel? Google Earth/Maps oder OpenStreetMap macht das ja auch nicht anders.

PS: Druckereien, die Plakate drucken, kommen ganz gut mit normalgroßen Bitmaps aus, da diese i.a. mit Dithering ausgedruckt werden.

Geändert von Dejan Vu ( 5. Sep 2015 um 10:22 Uhr)
  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 02:48 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-2025 by Thomas Breitkreuz