Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

alle Pixel als RGB aus JPG auslesen

Forumthread: alle Pixel als RGB aus JPG auslesen

alle Pixel als RGB aus JPG auslesen
18.07.2013 18:45:36
Frank
Hallo und guten Abend an Alle,
ich habe ein Problem und hoffe Ihr könnt mir helfen. Ich habe mich nun schon quer durchs Netz gesucht und auch hier im Forum gesucht. Ich möchte mir per ButtonKlick ein Bild (*.jpg) in Excel oder in eine Form laden. Nun möchte ich Pixel für Pixel von links oben nach rechts unten, Zeilenweise die RGB Werte jedes Pixels auslesen und in ein Array eintragen. Ich würde es auch gern in Excel übertragen, aber ich denke dass aufgrund der Bildgröße die maximal mögliche Spaltenzahl überschritten wird.
Hat irgend jemand einen Tipp/ Hilfe oder Erfahrung mit dieser Problematik?
Ich wäre für jede Hilfe sehr dankbar.
Diesen Code habe ich im Netz gefunden...
Sub Main()
Dim Bild As JPEG                    '
Vielen Dank und viele Grüße,
Frank

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: alle Pixel als RGB aus JPG auslesen
18.07.2013 18:51:00
Frank
Nachtrag:
wäre es möglich diese Funktion in VBA zu verwenden und wenn ja wie binde ich diese API in VBA ein?
http://www.vbarchiv.net/api/api_getpixel.html
Vielen Dank und viele Grüße
Frank

AW: alle Pixel als RGB aus JPG auslesen
18.07.2013 21:53:37
Martin
Hallo Frank,
meine Antwort wird dir nicht gefallen, aber bringt dich wahrscheinlich weiter: In dem Buch "Excel-VBA, Einstieg für Anspruchsvolle" erklärt der Autor Michael Schwimmer ab Seite 167 unter Kapitel "5.11.3 Bitmap-Array", wie die Pixel einer Bitmap-Grafik in ein Array übertragen werden können. Ich hätte aber ein schlechtes Gewissen, wenn ich seinen Code jetzt einfach hier veröffentlichen würde, dieses "Copy&Paste"-Verhalten erachte ich als unfair. Nur noch so viel: Seit Excel 2007 werden 1.048.576 Zeilen und 16.384 Spalten unterstützt, das ist doch schon eine ganze Menge! Da normale Fotos meist breiter als hoch sind, könnten die Daten zur Not transponiert werden.
Das Buch gibt es bei Amazon neu für 9 Euro zzgl. 3 Euro Versandkosten:
http://www.amazon.de/Excel-VBA-Lerntest-Einstieg-Anspruchsvolle-Master/dp/3827325250/ref=sr_1_sc_1?ie=UTF8&qid=1374177065&sr=8-1-spell&keywords=Excel+VNA+Einstieg+f%C3%BCr+Anspruchsvolle
Viele Grüße
Martin

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

RGB Pixel aus JPG in Excel auslesen


Schritt-für-Schritt-Anleitung

  1. Bild in Excel importieren: Zuerst musst Du ein JPG-Bild in Excel einfügen. Nutze dazu das Menü "Einfügen" und wähle "Bild".

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Neues Modul erstellen: Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbook)", wähle "Einfügen" und dann "Modul".

  4. VBA-Code einfügen: Füge den folgenden Code in das Modul ein:

    Sub Main()
       Dim Bild As Object
       Dim x As Long, y As Long
       Dim PixelRGB As Long
       Dim R As Integer, G As Integer, B As Integer
       Dim Zeile As Long
    
       Set Bild = LoadPicture("C:\Pfad\zu\deinem\bild.jpg") ' Pfad zum Bild anpassen
       Zeile = 1
    
       For y = 0 To Bild.Height - 1
           For x = 0 To Bild.Width - 1
               PixelRGB = GetPixel(Bild.Handle, x, y)
               R = PixelRGB Mod 256
               G = (PixelRGB \ 256) Mod 256
               B = (PixelRGB \ 65536) Mod 256
               Cells(Zeile, x + 1).Value = "R: " & R & ", G: " & G & ", B: " & B
           Next x
           Zeile = Zeile + 1
       Next y
    End Sub
  5. API für Pixelzugriff: Um die RGB-Werte der Pixel zu erhalten, musst Du möglicherweise eine API wie die in diesem Link verwenden.

  6. Code ausführen: Schließe den VBA-Editor und führe das Makro über das Menü "Entwicklertools" > "Makros" aus.


Häufige Fehler und Lösungen

  • Fehler beim Importieren des Bildes: Stelle sicher, dass der Pfad zum Bild korrekt ist und dass das Bild im JPG-Format vorliegt.

  • Zugriffsfehler auf Pixel: Möglicherweise hast Du die API nicht korrekt eingebunden. Überprüfe die API-Dokumentation für die korrekte Verwendung.

  • Excel stürzt ab: Bei sehr großen Bildern kann Excel überlastet werden. Versuche, die Bildgröße zu reduzieren oder die Daten in kleineren Abschnitten zu verarbeiten.


Alternative Methoden

  • Verwendung von externen Tools: Es gibt Programme, die JPGs analysieren und die RGB-Werte exportieren können. Diese Werte lassen sich anschließend in Excel importieren.

  • Online-Konverter: Nutze Online-Tools, um JPGs in CSV-Dateien zu konvertieren, die Du dann in Excel importieren kannst.


Praktische Beispiele

  1. Kleines Bild: Verwende ein kleines JPG-Bild (z.B. 100x100 Pixel) für erste Tests, um sicherzustellen, dass der Code funktioniert.

  2. Farben analysieren: Erstelle eine einfache Excel-Tabelle, in der Du die RGB-Werte von verschiedenen Bildern vergleichst.

  3. Datenvisualisierung: Nutze die RGB-Daten, um eine Farbpalette in Excel zu erstellen.


Tipps für Profis

  • Optimierung des Codes: Verwende Arrays, um die RGB-Werte zwischenzuspeichern, bevor Du sie in die Excel-Zellen schreibst. Dies kann die Geschwindigkeit erheblich steigern.

  • Automatisierung: Entwickle eine Benutzeroberfläche mit Buttons, um die Bildanalyse zu automatisieren und den Prozess zu vereinfachen.


FAQ: Häufige Fragen

1. Wie viele Pixel kann ich mit diesem Ansatz auslesen?
Mit Excel 2007 und neuer kannst Du bis zu 1.048.576 Zeilen und 16.384 Spalten nutzen, was in den meisten Fällen ausreichend ist.

2. Welche Bildformate werden unterstützt?
Dieser Ansatz funktioniert am besten mit JPG- und BMP-Bildern. Für andere Formate könnten zusätzliche Anpassungen notwendig sein.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige