ich möchte gerne ein SW-Bitmap in Zahlen umrechnen und in eine Tabelle
schreiben:
X - Y - Farbe
1 1 S
1 2 S
1 3 W
2 1 S
2 2 S
2 3 W
kann mir jemand einen Tip geben, wie ich ein Bitmap (oder anderes
Bildformat) so öffnen kann, dass ich auf den Hex-Code der Bildpunkte
zugreifen kann?
Danke erst mal und lg
Stefan
mal blöd gefragt: was hat das mit Access zu tun ??
Gruß Jürgen
> mal blöd gefragt: was hat das mit Access zu tun ??
Ich präzisiere:
ich möchte die Farbwerte des Bildes mit Hilfe von VBA für ACCESS X in eine
ACCESS - Tabelle schreiben um diese Daten dann wiederum in meiner (Access-)
Datenbank mit Hilfe einiger Abfragen weiterzuverarbeiten.
(Ich schreibe auch gerne eine komplette Projektbeschreibung, falls
erwünscht, denke aber, dass das für dieses Problem nicht relevant ist.)
Falls jemand alternativ ein Tool kennt, dass mir das erledigt und in einer
Datei abspeichern kann, die ich nach Access oder SQL Server importieren
kann, wär das natürlich auch eine Lösung obwohl ich es lieber direkt mit VBA
erledigen würde.
Bin für jeden Tip dankbar
lg
Stefan
Ing. Stefan Leitner <ad...@artes.at> schrieb:
Da hast Du Dir was ausgesucht!
(Un-)Möglichkeit 1:
Du kannst die Bilddatei in VBA direkt als Binärdatei
einlesen. Um mit dem Zeichensalat etwas anfangen zu
können, müßtest Du mit der Dateistruktur des jeweiligen
Bildformats vertraut sein. Das ist wahrscheinlich nicht
der Fall ...
Möglichkeit 2 (Keine Ahnung ob's auch in Access geht):
Mit der GetPixel-API-Funktion kann man die Farbwerte
von Punkten in einem Bildelement auslesen. Diese Funktion
benötigt aber einen Device-Context (hDC), den Access-
Bildfelder nicht offenlegen. Es gibt wiederum eine API-
Funktion, die Window-Handles (hWnd) in hDCs umsetzt.
Aber: Access-Controls haben zwar einen hWnd, legen ihn
aber auch nicht offen. Dafür gibt's natürlich wieder
eine API-Funktion, die aber beim Bildfeld daran scheitern
könnte, daß es keinen Focus bekommen kann.
Nichtsdestotrotz hier die nötigen APIs, vielleicht hast
Du ja Glück:
'Farbwert eines Pixels lesen
Public Declare Function GetPixel _
Lib "gdi32" ( _
ByVal hdc As Long, _
ByVal x As Long, _
ByVal y As Long) _
As Long
'hDC aus hWnd erzeugen
Public Declare Function GetDC _
Lib "user32" ( _
ByVal hwnd As Long) _
As Long
'hWnd des fokussierten Objekts auslesen
Public Declare Function GetFocus _
Lib "user32.dll" () _
As Long
Falls das nicht geht, könntest Du vielleicht in VB ein
ActiveX-Control programmieren, das als Bildfeld fungiert
und in dem Du den hDC zugänglich machst.
Das kannst Du dann als Zusatzsteuerelement in Access
einbinden.
Gruß aus Mainz
Michael
im Addison-Wesley Verlag gibt es ein Buch, das die gängigsten Dateiformate be-
schreibt. ISBN 3-8273-1241-8 von Günter Born, Titel: Referenzhandbuch Datei-
formate. Ob dieses Buch noch verlegt wird, weiss ich allerdings nicht.
Alternativ kann man aber auch so vorgehen: Ein Bild erzeugen z.B. ein 10x10
Pixel-Bild mit weißem Hintergrund und links oben ein schwarzer Pixel, dann ein
gleiches Bild, wobei das schwarze Pixel dann ein Position nach rechts gewandert
ist. Über einen Editor (sollte natürlich die Hex-Darstellung beherrschen)
untersuchen, was sich geändert hat. Dann mal die Größe ändern z.B. ein 11x11
Bild erzeugen usw. Auf diese Weise kann man schon einige Informationen zum
Aufbau einer BMP-Datei herausfinden ohne eine entsprechende Dateiformat-
Beschreibung zur Hand zu haben. Ist allerdings etwas mühsam.
Wie man Binärdaten importiert, steht in der Online-Hilfe von Access.
mfg Helmut Schimmel
"Ing. Stefan Leitner" <ad...@artes.at> wrote in message news:<3f3e6728$0$21248$91ce...@newsreader01.highway.telekom.at>...