[Feature Request] pic decode from BLOB(string)

  • Hallo Dream Developer,


    heute möchte ich Euch um etwas bitten. Vielleicht gibt es das auch schon und ich habe es nicht gefunden.... :kissing_face:


    Folgender Sachverhalt. Für mein MusicCenter erstelle ich Minicover 2St. /Song(cover *.jpg und Poster *.png wegen der transparent) bei 15000 Songs 32000 Cover theoretisch irgend wann mal.
    Dann kommen die ArtistPics dazu und radio Logos. Kur um mir gehen immer die Inodes aus auf den Device(USB Stick 64GB).
    Ich könnte natürlich umständlich die Inodes anpassen und so... Nur ist das nicht Massen tauglich.


    Nun mein Anliegen. Ich möchte die cover/poster gern in sqlite specichern als BLOB. Das funktioniert auch nur muss ich, und da wird es interessant, beim laden der Pics die BLOB als Pic abspeichern um es dann zu laden und ein ptr zu erzeugen. Hier würde ich Euch bitten mir zu helfen.
    Also aus sqlite BLOB holen und sofort in ein ptr loaden


    z.B

    Code
    self.__picload=ePicload()
    self.__picload.startDecodefromBLOB(row['imageBLOB'])
    ptr=self.__picload.getData()


    ja es ist langsamer als es von Filesystem zu holen, aber mir ist es schnell genug Dank Threading und twisted.enterprise adbapi.

    Python
    from twisted.enterprise import adbapi
    dbpool = adbapi.ConnectionPool("sqlite3", db_file, check_same_thread=False, timeout=3)


    Durch die Datenbankstruktor kann man dann Dublikate finden, verlinken und Platz sparen. Meine test Datenbank ist mittlerweile 150MB groß und schnurrt...


    Seht Ihr da eine Möglichkeit? :smiling_face:


    Ein Sache hätte ich da noch, erstmal schauen ob das hier etwas wird.


    MfG bobo71

    Die meisten Probleme macht man sich selber!

    2 Mal editiert, zuletzt von Bobo71 ()

    • Offizieller Beitrag

    Hi,


    das wird schwierig... also damit das geht müsstest du irgendwo im /tmp oder so eine virtuelle datei erzeugen die der innere c++ code ganz normal mit open / read /seek usw.. bearbeiten kann.


    Also man übergibt ja einen Pfad auf eine Datei... die dann geöffnet wird...


    ich hab gerade keine Ahnung ob es da was fertiges gibt, was sowas tut :winking_face:


    cu

  • Ich würde es evt. andersrum probieren


    http://www.nongnu.org/libsqlfs/


    Damit müsste es dann vielleicht auch ohne Änderungen im enigma2 gehen ...


    Was mich daran erinnert das ich schon lange fragen wollte ob man den fuse Treiber im DreamOS nicht fix in den Kernel machen könnte damit /dev/fuse schon da ist.


    OoZooN hatte mir das in OE 2.0 fix in sein Image gemacht und da konnte man nette Sachen damit machen :thumbs_up:

  • dann mach mal fuse fix in den Kernel, vorher macht das keinen Spass :smiling_face_with_sunglasses:

  • wo ist eigentlich das Problem die Funktion im C++ Code einzubauen?
    stichwort Images aus dem internet - da muss man immer erst das image im python part laden und zwischenspeichern um dann dem C++ part zu sagen die Datei zu laden...
    Was spricht denn dagegen da zum beispiel mit curl das image in den speicher zu laden und den buffer dann zum laden des images zu verwenden... das sollte doch viel schneller gehen als der python/c++ mix...
    den code dafür gibt es doch bei google... suchbegriff "cpp load png from memory" und "curl load image to memory" - da gibts nicht viel...
    und im gleichen aufwasch könnte man bobo's featurerequest mit einbauen... der blob ist doch auch nichts anderes als ein open (, rb) - genau das gleiche was zum beispiel epng.cpp macht...
    nur so ne idee - ist euer ding...

  • Hallo Ghost,


    Ich wäre nach wie vor an dieser Funktionalität interessiert. :smiling_face:


    Gruß.


    Edit:
    Vielleicht könnte man auch den sqlite Befehl mit geben und alles im C++ Teil erledigen... :grinning_squinting_face:


    Code
    self.__picload.startDecodefromBLOB("select cover from Songs WHERE Song_id=1245 LIMIT 1;")


    Im __init__() könnte man den Databasename mit übergben.

    Die meisten Probleme macht man sich selber!

    Einmal editiert, zuletzt von Bobo71 ()

  • Einmal hochspülen.... :smiling_face_with_sunglasses:


    Wäre nicht wenigstens ein load from blob(String) möglich?


    User derda hat ja evt. einen gangbaren Hinweis gegeben. Ich kann Null c++.


    Dann kann man cover in Musikfiles direkt einlesen. :face_with_rolling_eyes: Das wäre sehr cool.


    MfG bobo71.

    Die meisten Probleme macht man sich selber!