 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Leader4
Anmeldungsdatum: 20.01.2005 Beiträge: 99 Wohnort: Leipzig
|
Verfasst am: 25.01.2007, 22:45 Titel: Bilderdatenbank |
|
|
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 |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 26.01.2007, 17:10 Titel: |
|
|
Klingt interessant.
Aber wenn du dads schon hier hinschreibst, und dann sagst, dass es andere wohl kaum gebrauchen können...
Uploade doch wenigstens erstmal ein paar Screenshots.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Flo aka kleiner_hacker
Anmeldungsdatum: 23.06.2006 Beiträge: 1210
|
Verfasst am: 26.01.2007, 17:39 Titel: |
|
|
ö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 |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 26.01.2007, 17:42 Titel: |
|
|
Aha, jetzt geht also das aussperren von unschuldigen usern los.
Tjoa, das qbasci hat aber jet-x erfunden  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Flo aka kleiner_hacker
Anmeldungsdatum: 23.06.2006 Beiträge: 1210
|
Verfasst am: 26.01.2007, 17:46 Titel: |
|
|
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 |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 26.01.2007, 17:51 Titel: |
|
|
jeder vertpipt sich mal
und dieser fehler ist ziemlich verbreitet
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 |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 26.01.2007, 17:59 Titel: |
|
|
@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...  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Leader4
Anmeldungsdatum: 20.01.2005 Beiträge: 99 Wohnort: Leipzig
|
Verfasst am: 26.01.2007, 18:50 Titel: |
|
|
Ja, sorry, war ein Verschreiber. Aber ich glaube unterdessen weiß jeder, was gemeint ist .
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 |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 26.01.2007, 19:07 Titel: |
|
|
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 |
|
 |
Leader4
Anmeldungsdatum: 20.01.2005 Beiträge: 99 Wohnort: Leipzig
|
Verfasst am: 26.01.2007, 19:19 Titel: |
|
|
Das sieht wirklich gut aus.
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 |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 26.01.2007, 19:42 Titel: |
|
|
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 |
|
 |
Stormy

Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
|
Nach oben |
|
 |
Leader4
Anmeldungsdatum: 20.01.2005 Beiträge: 99 Wohnort: Leipzig
|
Verfasst am: 27.01.2007, 08:43 Titel: |
|
|
@ 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.
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 |
|
 |
Stormy

Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 27.01.2007, 14:36 Titel: |
|
|
Schade, dass der 1. Link nicht geht, hätte mich auch interessiert  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Stormy

Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
Verfasst am: 27.01.2007, 14:54 Titel: |
|
|
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!  _________________ +++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial |
|
Nach oben |
|
 |
Elvis

Anmeldungsdatum: 01.06.2006 Beiträge: 818 Wohnort: Deutschland, BW
|
Verfasst am: 27.01.2007, 23:08 Titel: |
|
|
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).
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.
Ich schaue mal, was sich machen lässt.
Grüße, Elvis _________________ Geforce 7300GT (256MB GDDR3, Gainward) -- 2x 512MB (DDR2 800, MDT) -- AMD Athlon64 X2 EE 3800+ -- Asrock ALiveNF5-eSATA2+ |
|
Nach oben |
|
 |
|
|
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.
|
|