Grafik in If-Verzweigung
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen
-
-
Warum nicht?
MfG
Check -
Checkmateing schrieb:
Warum nicht?
MfG
Check -
O.o Was?
Erzähl mal was du überhaupt vor hast, ob du eine Engine benutzt oder nicht und schildere nochmal dein Problem präziser.
MfG
Check -
Also, ich habe vor, dass ein Programm ein Bild erkennt. Und den dementsprechenden Befehl halt ausführt... Tut mir leid, wenn ich unverständlich bin
Ich meine es so, dass ein Randombild erstellt wird, mein Programm dann per Rechstklick --> Grafik kopieren --> Zwishcnespeicher dieses Bild erkennt, solange es in einer Liste aufgelistet ist und dann die dem entsprechende Funktion ausgeführt wird... -
Und bei dem ganzen Vorhaben, gerade das Random-Bild, weißt du nicht wie man 2 Bilder vergleicht?
Einfach den "ZwischenSpeicher" mit einer Variable die aus der Liste gefüllt wurde vergleichen. Ich würde es aber als Funktion machen und dann true oder false zurück liefern.
MfG
Check -
-
Das muss schon mit einem Vergleich und nicht mit einer Zuweisung geschehen.
= : Zuweisung
== : Vergleich
MfG
Check -
Checkmateing schrieb:
Das muss schon mit einem Vergleich und nicht mit einer Zuweisung geschehen.
= : Zuweisung
== : Vergleich
MfG
Check
Zur Anwendung, ich will das nur zur Übung wissen und dementsprechendes Programm schreiben, da ich inzwischen schon so ziemlich alle Anfängerprogramme gemacht habe (Taschenrechner, Terminkalender, Spambot und noch andere nützliche Dinge). Jetzt ist mir die Idee gekommen eine Art Smileyverzeichnis zu machen... Ich weiß, sinnlos, aber ich wills zur Übung
Und das würde ich halt so umsetzen, da in allen Foren die Smileys gelinkte Bilder sind, dass ich das Bild in den Zwischenspeicher (heißt das so?) kopiere und dann das Programm starte, und es mir den Code D, : ) .....) ausgibt...
Habe mich mal durchgelesen und irgendwas von Clipboard gelesen, aber das nur im Zusammenhang zu Strings. Und ich nehme an, dass sich Bilder nicht in eine Zeichenkette "schreiben" lassen. Auser natürlich die Linkadresse, aber das will ich nich
Die Ausgabe des Codes soll erstmal nur in der Konsole, oder in einer Messagebox (ja, weiß wies geht :D) ausgegeben werden.
Ich hoffe ich habs diesmal deutlicher und klarer ausgedrückt, falls nicht.... ja probier ichs nochmal
Muss ich dann jede einzelne Smileygrafik in die Datei einbinden?
Ich verlang jetzt auch keinen gesamten Code, sondern nur so einen Ansatz, Stichwort, Tut. oder so...
Danke
(Falls das für mein sehr kleines C++ Wissen noch zu hoch ist, dann sagt es und ich bin ruhig )Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von JaffaCoder ()
-
Viel Spaß bei dem Bau dieser Bilderanalyse!
Da helfe ich nicht mehr, da bin ich nicht so gut drin, aber grundsätzlich einfach das Bild aus dem Zwischenspeicher holen und in eine Variable tun.
Diese variable mit einer aus deiner Bilder-Sammlung vergleichen und nicht zuweisen, dann jeweils unter den jeweiligen Bedingungen ausgeben lassen.
Trotz allem, was willst du da vergleichen? Wie oben in diesem Beitrag genannt, nix vergleichen, Bilder Analyse. Nicht jedes Forum hat die gleichen Smileys und die Hintergründe sind teilweise auch anders. Trotz allem, bleibst du im gleichen Forum usw. ist das simple Vergleichen schon okay.
MfG
Check -
Das Stichwort Clipboard ist Richtig um an die Zwischenablage ran zu kommen, in diesem werden nicht nur Strings gespeichert auch Binärdaten wie BIlder können darin gespeichert sein.
Wenn du wirklich in Richtung Bilderkennung gehen möchtest kannst du unter dem Stichwort OCR weitersuchen. Solche Sachen werden auch oft mit trainierten neuronalen Netzen durchgeführt.
Wenn du Übung suchst, dann würde ich dir empfehlen lieber ein "Malprogramm" ala Paint zu programmieren, in der du auch mal genauer auf die schlichte Bitmap Struktur, oder auch andere Format, eingehen kannst.
-> speicher, laden, verarbeiten
Mfg Rushh0ur -
Rushh0ur schrieb:
Wenn du wirklich in Richtung Bilderkennung gehen möchtest kannst du unter dem Stichwort OCR weitersuchen. Solche Sachen werden auch oft mit trainierten neuronalen Netzen durchgeführt.
Wenn du Übung suchst, dann würde ich dir empfehlen lieber ein "Malprogramm" ala Paint zu programmieren, in der du auch mal genauer auf die schlichte Bitmap Struktur, oder auch andere Format, eingehen kannst.
-> speicher, laden, verarbeiten
Mfg Rushh0ur
Zu OCR. Das ist ja wirklich Erkennungssoftware, das praktisch Gemeinsamkeiten heraussucht (wenn ich das richtig verstanden habe)... Aber ich bräuchte ja etwas, dass nur prüft, ob die Bilde identisch sind...
Hast du ne Idee, wo ich mehr zum Clipboard finde? In der MSDN wurde ich nicht wirklich fündig und sonsitges Google hat ergeben, dasas auf jeder Seite, was anderes stand...
Danke -
Schau mal hier: Clipboard Functions
Beispiel für Text:
Quellcode
Die Daten eines Bitmap kriegt man mittels GetClipboardData(CF_BITMAP) auch ziemlich einfach, vorrausgesetzt es wurde auch ein Bitmap (Bild != Bitmap) in der Zwischenlage abgelegt.
Mfg Rushh0ur -
Rushh0ur schrieb:
Schau mal hier: Clipboard Functions
Beispiel für Text:
Quellcode
Die Daten eines Bitmap kriegt man mittels GetClipboardData(CF_BITMAP) auch ziemlich einfach, vorrausgesetzt es wurde auch ein Bitmap (Bild != Bitmap) in der Zwischenlage abgelegt.
Mfg Rushh0ur
Danke, du bist ein Genie -
Aber wie "verbinde" ich die die Bilder in dem Ordner mit meinem Programm? Oder wie Checkmateing geschrieben hat: Wie packe ich sie in eine Variable? Mit einem Stream?
-
Wenn du mit Bitmaps (*.bmp) arbeitest dann soltest du dir auch die Struktur von Bitmaps und die WinAPI Funktionen dazu anschauen.
Hier ein Beispiel zum Clipboard:
Quellcode
- HANDLE hData = GetClipboardData( CF_BITMAP );
- if (hData)
- {
- HBITMAP hBmp = 0;
- BITMAPINFO bmpinfo = {0};
- HDC hdcBmp = 0;
- char *pxBuffer = 0;
- // Handle in Bitmap Handle zu einfacheren Handhabung casten
- hBmp = (HBITMAP)hData;
- // Zeichenfläche (Context) erstellen und mit Bild verknüpfen
- hdcBmp = CreateCompatibleDC(0);
- SelectObject(hdcBmp, hBmp);
- // Bitmap Informationen auslesen
- bmpinfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
- GetDIBits(hdcBmp, hBmp, 0, 0, NULL, &bmpinfo, 0);
- // Pixelbuffer erstellen und auslessen
- pxBuffer = new char[ bmpinfo.bmiHeader.biHeight * bmpinfo.bmiHeader.biWidth * (bmpinfo.bmiHeader.biBitCount/8) ];
- bmpinfo.bmiHeader.biCompression = BI_RGB;
- GetDIBits(hdcBmp, hBmp, 0, bmpinfo.bmiHeader.biHeight, pxBuffer, &bmpinfo, DIB_RGB_COLORS);
- // mach was mit dem Pixelbuffer (pxBuffer)
- // zb. mittels memcmp() mit einem anderen Pixelbuffer vergleichen
- delete pxBuffer;
- // Zeichenfläche freigeben
- DeleteDC(hdcBmp);
- // Infos Ausgeben
- printf("Bitmap in der Zwischenablage gefunden!\n\n");
- printf("Breite: %d\n", bmpinfo.bmiHeader.biWidth);
- printf("Hoche: %d\n", bmpinfo.bmiHeader.biHeight);
- printf("Bittiefe:%d\n", bmpinfo.bmiHeader.biBitCount);
- printf("Groesse: %d\n", bmpinfo.bmiHeader.biSizeImage);
- }
- else
- printf("Kein Bild in der Zwischenablage\n");
Mfg Rushh0ur -
Rushh0ur schrieb:
Wenn du mit Bitmaps (*.bmp) arbeitest dann soltest du dir auch die Struktur von Bitmaps und die WinAPI Funktionen dazu anschauen.
Hier ein Beispiel zum Clipboard:
Quellcode
- HANDLE hData = GetClipboardData( CF_BITMAP );
- if (hData)
- {
- HBITMAP hBmp = 0;
- BITMAPINFO bmpinfo = {0};
- HDC hdcBmp = 0;
- char *pxBuffer = 0;
- // Handle in Bitmap Handle zu einfacheren Handhabung casten
- hBmp = (HBITMAP)hData;
- // Zeichenfläche (Context) erstellen und mit Bild verknüpfen
- hdcBmp = CreateCompatibleDC(0);
- SelectObject(hdcBmp, hBmp);
- // Bitmap Informationen auslesen
- bmpinfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
- GetDIBits(hdcBmp, hBmp, 0, 0, NULL, &bmpinfo, 0);
- // Pixelbuffer erstellen und auslessen
- pxBuffer = new char[ bmpinfo.bmiHeader.biHeight * bmpinfo.bmiHeader.biWidth * (bmpinfo.bmiHeader.biBitCount/8) ];
- bmpinfo.bmiHeader.biCompression = BI_RGB;
- GetDIBits(hdcBmp, hBmp, 0, bmpinfo.bmiHeader.biHeight, pxBuffer, &bmpinfo, DIB_RGB_COLORS);
- // mach was mit dem Pixelbuffer (pxBuffer)
- // zb. mittels memcmp() mit einem anderen Pixelbuffer vergleichen
- delete pxBuffer;
- // Zeichenfläche freigeben
- DeleteDC(hdcBmp);
- // Infos Ausgeben
- printf("Bitmap in der Zwischenablage gefunden!\n\n");
- printf("Breite: %d\n", bmpinfo.bmiHeader.biWidth);
- printf("Hoche: %d\n", bmpinfo.bmiHeader.biHeight);
- printf("Bittiefe:%d\n", bmpinfo.bmiHeader.biBitCount);
- printf("Groesse: %d\n", bmpinfo.bmiHeader.biSizeImage);
- }
- else
- printf("Kein Bild in der Zwischenablage\n");
Mfg Rushh0ur
Oh mein Gott :wacko:
Das sieht etwas schwer aus... Ich warte lieber bis zu den Sommerferien, da hab ich mehr Zeit mir alles genau anzuschauen.
Trotzdem danke -
Eigentlich relativ leicht, wenn man durchblickt und langsam arbeitet.
MfG
Check
-
Teilen
- Facebook 0
- Twitter 0
- Google Plus 0
- Reddit 0
-
Benutzer online 1
1 Besucher