Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Bilderdatenbank

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Leader4



Anmeldungsdatum: 20.01.2005
Beiträge: 99
Wohnort: Leipzig

BeitragVerfasst am: 25.01.2007, 22:45    Titel: Bilderdatenbank Antworten mit Zitat

Hi.


Meine neue Bilderdatenbank "Imagine" ist nahezu fertig. Ich möchte mich hierbei insbesondere noch einmal beim FBasci-Forum bedanken, da ich das Programm sonst wohl nicht in der Form hinbekommen hätte.


Imagine ist ein Verwaltungsprogramm für Fotos (Foto-Datenbank). Da ich sehr viele Fotos auf dem PC habe (mehr als 11.000) habe ich in den letzten Monaten zunächst alle Fotos registriert (sprich in knapper Form den Bildinhalt notiert) und anschließend Programme erstellt, die eine Volltextsuche nach Bildern ermöglichen. Insbesondere habe ich bei dem neusten Programm, Imagine, die Suchdauer auf einen Bruchteil einer Sekunden gesenkt.

Features sind:

- Bildersuche nach den allg. Optionen (G/K-Schreibung, ganzes Wort suchen, nach einem/nach allen Wörtern suchen)
- Direktes anzeigen von Suchergebnissen
- Anzeigen der gesamten Bildinfo
- RandomPicture (zufälliges Anzeigen eines Fotos aus dem Datensatz)
- Virtuelle Ordnerumgebung
- Umfangreiche vollautomatische Statistik mit Selbstverwaltung (hält bis zum Jahr 2021)
- Noch ein paar nebensächlichere Optionen, z. B. sortierte Ausgabe der Resultate nach bestimmten Kriterien (z. B. Aufnahmedatum der Fotos); Umsetzung mit Selection Sort (Laufzeitverhalten O (n²/2)).

Die Grafikoberfläche ist eine sehr einfache Form von 3D (im Grunde nur Boxen mit Unterschatten). Die Farbdarstellung ist eine Mischung aus blau (Hintergrund), weiß (Boxen) und schwarz (Ausgabe in den Boxen). Drop-Down-Menüs habe ich nicht simuliert, da es dafür auch keine wirkliche Anwendung gegeben hätte. Die Steuerung geht also im Grunde ausschließlich über simulierte Buttons.

Die Ladezeit, die das Programm zum Einladen der Daten benötigt, ist bei derzeit 11.000 Bildern mit rund 2,5 Sekunden noch akzeptabel, zumal es sich hierbei sowieso nur um eine lineare Laufzeit handelt.


Leider habe ich das Programm mehr oder weniger nach meinen eigenen Bedürfnissen programmiert, so dass es wohl kaum für jemand anderes nützlich sein kann. Wen das Programm dennoch näher interessieren sollte, kann sich ja melden, dann kann ich vll auch einmal paar Screenshots uploaden.


Viele Grüße,
Leader4.[/img]
_________________
Ein richtiger Programmierer muss so richtig faul sein und sich den ganzen Tag mit der Frage beschäftigen, wie man mal wieder etwas einfacher machen kann.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 26.01.2007, 17:10    Titel: Antworten mit Zitat

Klingt interessant. lächeln

Aber wenn du dads schon hier hinschreibst, und dann sagst, dass es andere wohl kaum gebrauchen können... zwinkern

Uploade doch wenigstens erstmal ein paar Screenshots. zwinkern
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Flo
aka kleiner_hacker


Anmeldungsdatum: 23.06.2006
Beiträge: 1210

BeitragVerfasst am: 26.01.2007, 17:39    Titel: Antworten mit Zitat

öhh, offtopic

FBasci forum?
ähh ich weiß nich WAS es bedeutet, aber auf jedenfall hat infection ne vorliebe dafür (das ophiezielle QBASCI forum usw)
_________________
MFG
Flo

Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.

zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 26.01.2007, 17:42    Titel: Antworten mit Zitat

Aha, jetzt geht also das aussperren von unschuldigen usern los. Kopf schütteln

Tjoa, das qbasci hat aber jet-x erfunden Zunge rausstrecken
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Flo
aka kleiner_hacker


Anmeldungsdatum: 23.06.2006
Beiträge: 1210

BeitragVerfasst am: 26.01.2007, 17:46    Titel: Antworten mit Zitat

aussperren will ich keinen
ich wollt nur auf einen ziemlich... KOMISCHEN tippfehler anspielen

NICHT dass er einm gebannter ist
_________________
MFG
Flo

Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.

zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 26.01.2007, 17:51    Titel: Antworten mit Zitat

jeder vertpipt sich mal Zunge rausstrecken
und dieser fehler ist ziemlich verbreitet happy

egal, btt.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 26.01.2007, 17:59    Titel: Antworten mit Zitat

@kleiner_hacker:
Er meinte, er würde Screenshots hochstellen. Warum ist das dann OT? Er hat in dem Sinne auch ein Projekt mittels Beschreibung vorgestellt? Er HAT ein Projekt! Im Gegensatz zu dir und dem Rest deiner Leute, die hier nur große Ankündigungen gemacht haben... mit den Augen rollen
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Leader4



Anmeldungsdatum: 20.01.2005
Beiträge: 99
Wohnort: Leipzig

BeitragVerfasst am: 26.01.2007, 18:50    Titel: Antworten mit Zitat

Ja, sorry, war ein Verschreiber. Aber ich glaube unterdessen weiß jeder, was gemeint ist zwinkern.


Hab auf der folgenden Seite 4 Screenshots von dem Programm hochgeladen.

[url]
http://infostudent.in.funpic.de/
[/url]


1. Startbildschirm (Hauptmenü des Programms).
2. Anzeigen von Suchergebnissen nach einer Suche.
3. Direktes Anklicken eines Bildes von der Seite der Suchergebnisse.
4. "Virtuelles Ordnerverzeichnis" (Auflistung der einzelnen Ordner, die angeklickt werden können und dann über den Windowsexplorer geöffnet werden).



Freundliche Grüße,
Leader4.
_________________
Ein richtiger Programmierer muss so richtig faul sein und sich den ganzen Tag mit der Frage beschäftigen, wie man mal wieder etwas einfacher machen kann.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 26.01.2007, 19:07    Titel: Antworten mit Zitat

Sieht hüsch aus (allerdings ein wenig old-fashioned für eine photo-verwaltung, wenn du weißt was ich meine). Du könntest z.B. vor allem im hintergrund Farbverläufe einbauen, schau mal z.B. diesen schönen farbverlauf an, sieht recht professionell aus:
Code:

screen 18,32
Dim As Double fbR,fbG,fbB,fbRs,fbGs,fbBs
dim as integer k
fbR=104
fbG=112
fbB=124
fbRs=fbR/256
fbGs=fbG/256
fbBs=fbB/256
For K=0 To 255
    fbR+=fbRs
    fbG+=fbGs
    fbB+=fbBs
    Line(0,K)-(799,K),Rgb(fbR,fbG,fbB)
Next

sleep


btw, der url-tag geht so:
[url=http://.....]Textlink[/url]
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Leader4



Anmeldungsdatum: 20.01.2005
Beiträge: 99
Wohnort: Leipzig

BeitragVerfasst am: 26.01.2007, 19:19    Titel: Antworten mit Zitat

Das sieht wirklich gut aus. lächeln

Aber wie genau kommen die Farben zu Stande. Wie kann man beispielsweise statt so einem grauen einen blauen Hintergrund bilden?


Grüße,
Leader4.
_________________
Ein richtiger Programmierer muss so richtig faul sein und sich den ganzen Tag mit der Frage beschäftigen, wie man mal wieder etwas einfacher machen kann.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 26.01.2007, 19:42    Titel: Antworten mit Zitat

RGB-Farbschema.
fbR = Startwert Rotanteil
fbG = Startwert Grünanteil
fbB = Startwert Blauanteil

Also musst du den wert fbB anheben.
Wenn der Hintergrund plötzlich eine ganz andere Farbe annimmt, beduetet das, dass einer der 3 Werte über 255 liegt. in diesem fall musst du bei fbRs, fbGs und fbBs den Wert 256 erhöhen.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 26.01.2007, 19:44    Titel: Antworten mit Zitat

Sieht sehr steril und zweckmäßig aus => Finde ich gut lächeln

Kleine Tipps für dich:

- Bilder-Preview
- Einige Bilder haben Informationen innerhalb gespeichert (Urheber, Kameratyp, etc.). Die könnten vielleicht von deinem Programm ausgelesen werden.
_________________
+++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Leader4



Anmeldungsdatum: 20.01.2005
Beiträge: 99
Wohnort: Leipzig

BeitragVerfasst am: 27.01.2007, 08:43    Titel: Antworten mit Zitat

@ Stormy.

Danke für die Tipps.

Auf die Bildinformationen zugreifen zu können wäre wirklich gut, aber ich habe mir mal einige JPEG-Dateien "von innen" angeschaut und musste feststellen, dass das nicht sehr einfach ist, auf die Informationen zuzugreifen. Zudem kann ich die JPEGs auch nicht normal mit Open ... For Input As auslesen, sondern irgendwie binär, wovon ich wieder keine Ahnung habe.
neutral

Das mit dem Bild-Preview wäre auch toll. Kennst du eine Funktion bzw. ein Programmmodul, das JPEG-Bilder anzeigen kann, die dann aber unbedingt auch noch von dem Programm komprimiert werden müssten (z. B. auf 100 x 150 Pixel). Hab nämlich zwar einen Bildloader mal ausprobiert, aber da die Bilder nicht komprimiert wurde, war halt der ganze Bildschirm mit dem Bild voll und zudem nur mit einem kleinen Ausschnitt des Bildes.


Liebe Grüße,
Leader4.
_________________
Ein richtiger Programmierer muss so richtig faul sein und sich den ganzen Tag mit der Frage beschäftigen, wie man mal wieder etwas einfacher machen kann.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 27.01.2007, 10:47    Titel: Antworten mit Zitat

Ich habe mich mal beim engl. FB-Forum erkundigt. Also hier die JPEG-Laderoutine: http://www.streetcds.co.uk/libFBJPEG_v0_1.zip Damit kannst du eine JPEG in den fb-kompatiblen Grafikbuffer umwandeln.

Und mit dieser folgenden Routine kannst du den Buffer skaliert ausgeben: http://www.freebasic.net/forum/viewtopic.php?t=2441&highlight=multiput
_________________
+++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 27.01.2007, 14:02    Titel: Antworten mit Zitat

Evtl. hilft dir die offizielle Spezifikationsseite des EXIF-Standards weiter. Imho waren dort auch irgendwo Beispiele. lächeln
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 27.01.2007, 14:36    Titel: Antworten mit Zitat

Stormy hat Folgendes geschrieben:
Ich habe mich mal beim engl. FB-Forum erkundigt. Also hier die JPEG-Laderoutine: http://www.streetcds.co.uk/libFBJPEG_v0_1.zip Damit kannst du eine JPEG in den fb-kompatiblen Grafikbuffer umwandeln.

Und mit dieser folgenden Routine kannst du den Buffer skaliert ausgeben: http://www.freebasic.net/forum/viewtopic.php?t=2441&highlight=multiput


Schade, dass der 1. Link nicht geht, hätte mich auch interessiert happy
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 27.01.2007, 14:54    Titel: Antworten mit Zitat

Jo... anscheinend ist der Link tot. Hier einige Alternativen:

1. mit der FreeImage-Lib:

Quelle: http://www.freebasic.net/forum/viewtopic.php?p=15631#15631
DLL: http://freeimage.sourceforge.net/download.html

Beispiel:
Code:
#include "freeimage.bi"
#include "crt.bi"

Declare Function GetJpeg(Byval File As String) As Any Ptr

Dim Image As Any Ptr
ScreenRes 640, 480, 32

Image = GetJpeg("hedgehog.jpg")
If Image Then
    Put (0, 0), Image
Else
    Print "File not found"
End If

Sleep

Function GetJpeg(Byval File As String) As Any Ptr
    Dim Dib As FIBITMAP Ptr
    Dim Dib32 As FIBITMAP Ptr
    Dim SprWidth As Integer
    Dim SprHeight As Integer
    Dim Sprite As Any Ptr
    Dim Bits As Any Ptr
       
    Dib = FreeImage_Load(FIF_JPEG, File, JPEG_DEFAULT)
    If Dib = 0 Then Return 0
   
    FreeImage_FlipVertical Dib
    Dib32 = FreeImage_ConvertTo32Bits(Dib)
   
    SprWidth = FreeImage_GetWidth(Dib32)
    SprHeight = FreeImage_GetHeight(Dib32)
    Sprite = ImageCreate(SprWidth, SprHeight)
    Bits = FreeImage_GetBits(Dib32)
   
    MemCpy CPtr(Zstring Ptr, Sprite) + 4, Bits, SprWidth * SprHeight * 4
   
    FreeImage_Unload(Dib32)
    FreeImage_Unload(Dib)

    Return Sprite
End Function


2. LoadImage-Library von antarman:

Quelle: http://www.freebasic.net/forum/viewtopic.php?t=5331&highlight=jpeg
Download: http://antarman.nm.ru/files/FreeBASIC/LoadImage.zip

Beispiel:

Code:
#include "LoadImage.bi"
option explicit

dim as byte ptr   Image

screen 18,32
locate 10,0

Image=LoadImage("bla.jpg")
if Image=0 then end
put (0,0),Image,PSET

sleep
ImageDestroy(Image)


Ich habe die Beispiele nicht ausprobiert. Musst es also selbst einmal versuchen! zwinkern
_________________
+++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Elvis



Anmeldungsdatum: 01.06.2006
Beiträge: 818
Wohnort: Deutschland, BW

BeitragVerfasst am: 27.01.2007, 23:08    Titel: Antworten mit Zitat

Leader4 hat Folgendes geschrieben:

Das mit dem Bild-Preview wäre auch toll. Kennst du eine Funktion bzw. ein Programmmodul, das JPEG-Bilder anzeigen kann, die dann aber unbedingt auch noch von dem Programm komprimiert werden müssten (z. B. auf 100 x 150 Pixel). Hab nämlich zwar einen Bildloader mal ausprobiert, aber da die Bilder nicht komprimiert wurde, war halt der ganze Bildschirm mit dem Bild voll und zudem nur mit einem kleinen Ausschnitt des Bildes.

Ich weiß nicht, wie die anderen vorgeschlagenen Routinen sind, aber mir
ist gerade die Idee gekommen, dass man ein Programm in BlitzBasic schrei-
ben könnte, welches die Bilddatei dann in einem extra Fenster öffnet (BlitzBasic
unterstützt recht viele Bildformate, also nicht nur JPEG). zwinkern
Ich habe seit Weihnachten einen Compiler, mit dem ich aber bisher noch nicht
so viel gemacht habe, da ich ziemlich mit meinem PC kämpfe. Das sind
gerade die ersten Minuten, die ich auf einem gut funktionierenden Be-
triebssystem verbringe. durchgeknallt zwinkern
Ich schaue mal, was sich machen lässt. lächeln


Grüße, Elvis
_________________
Geforce 7300GT (256MB GDDR3, Gainward) -- 2x 512MB (DDR2 800, MDT) -- AMD Athlon64 X2 EE 3800+ -- Asrock ALiveNF5-eSATA2+
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz