Re: Lineal skalieren

Tech Tip: Click here to run a free scan for Windows Errors and optimize PC performance



"Armin Zingler" <az.nospam@xxxxxxxxxx> schrieb im Newsbeitrag news:Oa85RloIIHA.1208@xxxxxxxxxxxxxxxxxxxxxxx

Darauf kannst Du z.B. SetPixel oder auch GetPixel ausführen.
Aber hat ein Pixel in diesem Array eine Fläche? Hat das ganze Array
eine Fläche? Nein.

Nein, aber das Bild, das durch die Bitmap repräsentiert wird, hat eine
Fläche. Ich (leider nur ich) sehe eine Bitmap als Bild an.

Hi Armin,
wenn ich ein Object als Container für die Aufbewahrung und den Transport von anderen Objekten nutze, kann ich doch nicht zwangsläufig daraus ableiten, dass mein Container jetzt das gleiche ist, wie dessen Inhalt. Ein Lkw, der Fässer mit Bier transportiert, wird dadurch doch nicht zum Bier :-)

Das ist ja
der Zweck einer Bitmap: Speicherung eines Bildes.

Die Bitmap-Klasse ist zur Verwaltung von gemittelter Farbinformation optimiert. Das Verwalten von aproximierter Bildinformation muss nicht zwangsläufig der einzige Anwendungsfall für die Bitmap-Klasse sein.

Daher ist für mich
in diesem Zusammenhang eine Bitmap gleich einem Bild, und ein Pixel der
Bitmap ist eine Teilfläche des Bildes. Dass das anders gesehen wird, habe
ich mittlerweile mitbekommen. ;-) Ich hatte bisher weder theoretisch noch
praktisch jemals einen Grund, daran zu zweifeln und habe auch jetzt noch
keinen. Ein Gegenargument gibt es bisher nicht.

Wozu brauchst du Gegenargumente?

Ein Bild als stete Information von Farben wird zerlegt in Teilflächen, deren Farbinhalt gemittelt wird. Dieser gemittelte Farbinhalt einer Teilfläche wird als Pixel bezeichnet. Er ist niemals ein Bild.

Aus dem Inhalt einer Bitmal lässt sich niemals das Original erstellen. Es lässt sich nur eine angenäherte Kopie erstellen, die umso detaillierter ist, je höher die Auflösung ist. Das hat aber mit dem Pixel nichts zu tun.

Eine Bitmap ist nicht nur eine Ansammlung von Zeichenanweisungen. Eine
Bitmap *ist* die Zeichnung.

Das ist es eben nicht. Aus einem Bitmap-Objekt kann man ein Bild erstellen. Genau so kann man mit einem Bildschirm ein Bild darstellen. Der Bildschirm ist aber nicht DAS Bild.

Ich kann mit Graphics.FromImage auf der Bitmap
zeichnen, selbst wenn ich sie niemals auf irgendeinem Medium ausgäbe.

Die Fähigkeiten eines Objektes werden in der Klassendefinition festlegt. Wie diese Fähigkeiten in der Ausführung genutzt werden, hat überhaupt nichts mit der Kalssendefinition zu tun.

[Hat das ganze Array eine Fläche?]
Was du mit dieser Frage machst, ist, das Verständnis dafür auszuschalten,
was das Array enthält. Du stempelst die Items im Array zu Zahlen ab. Dass
diese keine Fläche habe ist klar. Ich finde, dieses Weglassen der
Interpretation ist nicht zulässig. Gerade um die geht es hier m.E.
hauptsächlich.

Die Fähigkeit zur Abstraktion sollte gerade bei einem Projektanten besonders ausgebildet sein. Was nutzt mir, wenn Daten 3-dimensional verschlüssle und für die Speicherung die Bitmap-Klasse nutze und dabei von Bildern spreche? Für mich bleibt eine Bitmap-Klasse die Schale für die Verwaltung eines 2-dimesionalen Arrays von Integer-Werten.

...
Was mir in dieser Diskussion fehlt, ist das Wissen darum, dass die
Digitalisierung eines Bildes eine Methode ist, bei der die Vorlage logisch
in einzelne Teilflächen unterteilt wird, von denen, aufgrund der
erforderlichen Informationsreduzierung wegen zwangsläufig nicht ins
Unendliche gehender Auflösung bei diesem Vorgang, angenommen wird, dass sie
jeweils eine einzige Farbe haben. Das Ergebnis der Digitalisierung ist eine
Bitmap oder ein Array. Jedes Element im Array repräsentiert eine Teilfläche
dieses Bildes. Ich nenne diese Teilfläche sowohl beim Original als auch in
der digitalisierten Form "Pixel", da es jeweils eine 1:1-Beziehung zwischen
Original und Kopie gibt.

Genau diese 1:1-Beziehung gibt es nicht. Der Informationsgehalt einer Teilfläche in einem Bild ist ein anderer als der Informationsgehalt in einem Pixel. Ein Pixel mittelt den Informationsgehalt der Teilfläche, die er repräsentiert. Es ist also eine Einbahnstraße mit Verlust von Information.

...

PS: Letzter Absatz inhaltlich eigentlich doppelt, aber wie man es dreht und
wendet kommt man offenbar immer wieder zur selben Definition....

Das hängt aber vor allem von der Beweglichkeit ab, mit der man bereit ist, seinen Standpunkt neuen Erkenntnissen anzupassen :-)

--
Viele Gruesse

Peter

.



Relevant Pages

  • Re: Lineal skalieren
    ... Das Pixel auf dem Bildschirm ist auch ... Eine Bitmap ist zunächst nichts anderes als ein zweidimensionales ... Aber hat ein Pixel in diesem Array eine Fläche? ... Digitalisierung eines Bildes eine Methode ist, ...
    (microsoft.public.de.german.entwickler.dotnet.vb)
  • Re: Lineal skalieren
    ... >> Aber hat ein Pixel in diesem Array eine Fläche? ... Ich sehe eine Bitmap als Bild an. ...
    (microsoft.public.de.german.entwickler.dotnet.vb)
  • Re: Scale a vector
    ... I need to resize a one-dimensional array. ... is greater than the width of the original bitmap. ... The array lenght must be the same, so I've to scale RGB proj. ... the value of the middle pixel, I think the solution is basically the ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Scale a vector
    ... you still haven't provided any guidance regarding _how_ you want the data in the array to be calculated. ... The array lenght must be the same, so I've to scale RGB proj. ... If you don't want to scale the input first, I would say that instead of treating the data as an array, you should generate new bitmaps, as wide or high as the input bitmap, and one pixel in size in the other direction. ...
    (microsoft.public.dotnet.languages.csharp)
  • Biildcharacteristik ermitteln
    ... Mir ist bisher eingefallen pixelweise die Helligkeit zu ermitteln und daraus für alle Pixel des Bildes den Durchschnitt zu ermitteln. ... Also habe ich mit Image.GetThumbnailImageein 10x10 px großes Thumbnail vom Bitmap erstellt und analysiere dort nur die wenigen Pixel. ... halt immernoch das Bitmap vom Bild erstellt werden und das scheint wesentlich mehr an der Performace zu zerren wie die Helligkeitsberechnung. ...
    (microsoft.public.de.german.entwickler.dotnet.csharp)