Froschs Blog

Computer und was das Leben sonst noch so zu bieten hat

Zur Website | Impressum

Archiv der Rubrik 'Programmierung'

GIMP-Filter „heal selection“

Montag, 10. Juli 2023

Ich vermisse seit dem Upgrade auf Devuan 4 bzw. Debian 10 schmerzlich das GIMP-Werkzeug „heal selection“ (hier sehr gut beschrieben von Ralf Hersel). Das ist nicht mehr in Debian, weil das Paket gimp-python nicht mehr in Debian ist. gimp-python ist nicht mehr in Debian, weil das wohl in Python 2.x geschrieben ist, insofern verständlich.

Manche schreiben von einem Plugin namens resynthesizer, das im Paket gimp-plugin-registry enthalten sein soll, aber abgesehen davon, daß ich den in meiner deutschen Version nicht finde, soll das wohl auch nicht dasselbe sein.

:~$ apt search gimp plugin resynthesizer
Sortierung… Fertig
Volltextsuche… Fertig
gimp-plugin-registry/stable,now 9.20200927 amd64  [installiert]
  repository of optional extensions for GIMP

Ich will Sensorflecken aus buchstäblich tausenden von Fotos aus der Canon EOS 350D entfernen. Deren Sensor ließ sich einfach nicht ordentlich reinigen, und „heal selection“ ist genau das richtige Werkzeug dafür. Die Flecken in diesem Beispiel-Bild habe ich rot markiert: (mehr …)


Das Piwigo-Desaster

Donnerstag, 5. Januar 2023

Zum Betrieb meiner Media-Site verwende ich seit gut fünf Jahren Piwigo. Da liegen nun mittlerweile gut 35.600 Medien, ganz überwiegend natürlich Fotos, aber auch Scans von Tickets etc. und einige Videodateien. Von den Fotos sind fast 32.000 öffentlich zugänglich. So weit, so gut.

Schon im November war mir eher zufällig aufgefallen, daß sich die Videodateien dort nicht mehr abspielen ließen. Den Grund konnte ich erstmal nicht feststellen. Erst später bemerkte ich, daß die Fotos nur noch in der jeweiligen Alben-Übersicht und generell in den kleineren Formaten angezeigt wurden, aber nicht mehr in der Einzeldarstellung. Da stand nur noch der ursprüngliche Dateiname. Nach etwas Sucherei konnte ich die Änderung an einem Datum festmachen: Am 12. November früh morgens hatte ich bei Piwigo einige Updates eingespielt. Das waren zum einen zwei oder drei Plugins gewesen und zum anderen ein Versions-Update, und zwar von 13.2.0 auf 13.4.0 (die 13.3.0 hatte ich verpeilt gehabt).

Und in dieser Update-Routine gab es einen bösen Fehler, der dazu führte, daß das Upload-Verzeichnis einfach mal weg war. Und damit alle Dateien, die ich in den letzten fünf Jahren hochgeladen hatte. Natürlich mache ich von der Datenbank von Piwigo – wie von allen Datenbanken auf diesem Server – täglich ein Backup. Von den hochgeladenen Bildern habe ich das bislang nicht gemacht. Ja, das war wohl ein Fehler, den ich gerade zähneknirschend korrigiere. Unter anderem. (mehr …)


Jahresrückblick 2022

Samstag, 31. Dezember 2022

Es war das Jahr der Toten.

Aber der Reihe nach, wie üblich.

Im Oktober 2021 hatte ich ja angefangen, selbst Brot zu backen. Im Automaten, aber mit eigenen Mehlmischungen, die ich mir eher spontan zusammengestellt habe. Denn da war noch das Mehl, das ich 2018 aus dem Haushalt meiner Mutter übernommen hatte, und irgendwann mußte das mal weg. Im Januar gab es dann ein paar seltsame Ereignisse mit diesen Automaten-Broten, und ich suchte echt wochenlang nach dem Grund. Den Grund dafür, warum ich immer wieder Pannenbrote herausbekam. Also eigentlich gebackenes Mehl ohne Wasser. Zunächst dachte ich, mein alter LeCaf sei am Ende, und jemand war übermäßig freigiebig, als ich nach Empfehlungen für einen neuen (gebrauchten) fragte – und kaufte mir einen niegelnagelneuen Automaten – mit dem dann wieder genau dasselbe passierte … (mehr …)


Canon-Kameras, Python-PIL und die EXIF-Daten

Mittwoch, 12. Oktober 2022

Vorgestern Abend stieß ich auf ein … interessantes Problem.

Projekt: downscaler (Git-Repo: Downscaler; clonen geht derzeit noch nicht wieder, aber man kommt über den „snapshot“-Link an die Datei-Inhalte). Geschrieben in Python3 mit den externen Modulen PIL (pillow) und piexif.

Das recht einfache Python-Script rotiert die JPG-Dateien aus einem Verzeichnis (bei Bedarf) und skaliert sie dann – sofern das Original größer ist – so herunter, daß die breitere Seite 1200 px hat. Das Ergebnis wird unter demselben Dateinamen in ein anderes Verzeichnis gespeichert. Das Original wird dabei nicht verändert. So weit, so gut.

Bisher habe ich das beim Bearbeiten mit The GIMP direkt mitgemacht. Das bedeutet aber auch, daß ich selbst solche Fotos, an denen ich sonst gar nichts editieren will, in GIMP holen, ggf. rotieren, runterskalieren und wieder abspeichern muß. Sich wiederholende Tätigkeiten sollte man doch besser einem Computer überlassen, weil der das schneller kann, nicht wahr? 🙂 (mehr …)


Kleine Diskussion mit MariaDB

Samstag, 8. Oktober 2022

Ich stand grad mal wieder auf dem Schlauch.

 MariaDB [piwigodb]> show columns from pwg_categories;
 +---------------------------+-----------------------------+------+-----+---------------------+
 | Field                     | Type                        | Null | Key | Default             |
 +---------------------------+-----------------------------+------+-----+---------------------+
 | id                        | smallint(5) unsigned        | NO   | PRI | NULL                |
 | name                      | varchar(255)                | NO   |     |                     |
 | id_uppercat               | smallint(5) unsigned        | YES  | MUL | NULL                |
 | comment                   | text                        | YES  |     | NULL                |
 | dir                       | varchar(255)                | YES  |     | NULL                |
 | rank                      | smallint(5) unsigned        | YES  |     | NULL                |
 | status                    | enum('public','private')    | NO   |     | public              |
 | site_id                   | tinyint(4) unsigned         | YES  |     | NULL                |
 | visible                   | enum('true','false')        | NO   |     | true                |
 | representative_picture_id | mediumint(8) unsigned       | YES  |     | NULL                |
 | uppercats                 | varchar(255)                | NO   |     |                     |
 | commentable               | enum('true','false')        | NO   |     | true                |
 | global_rank               | varchar(255)                | YES  |     | NULL                |
 | image_order               | varchar(128)                | YES  |     | NULL                |
 | permalink                 | varchar(64)                 | YES  | UNI | NULL                |
 | lastmodified              | timestamp /* mariadb-5.3 */ | NO   | MUL | current_timestamp() |
 | external_reference        | varchar(255)                | YES  |     | NULL                |
 +---------------------------+-----------------------------+------+-----+---------------------+

(mehr …)


Spaß mit Python3 und InnoDB

Donnerstag, 13. Januar 2022

Die Blogs, die ich betreibe bzw. administriere, laufen allesamt mit MariaDB, einem Fork von MySQL. Die beiden Datenbank-Systeme kennen zwei verschiedene Engines, um Daten zu verwalten: MyISAM (die ältere) und InnoDB (die neuere). Die Blogs, die ursprünglich mit WordPress gestartet waren, legten ihre Datenbank mit MyISAM an, und auch, wenn die Blogs mittlerweile auf ClassicPress umgestellt wurden, blieb dieses Format erhalten. Was ich neu direkt mit ClassicPress installiert habe, bekam jedoch eine Datenbank mit der InnoDB-Engine, die die Daten ein wenig anders ablegt. Im laufenden Betrieb insbesondere der relativ kleinen Blogs macht das erstmal keinen Unterschied.

Anders sieht das aus, wenn ich abseits vom Blogsystem (hier: mit Python3) in diese Datenbanken reingreifen möchte. Solange ich nur lesend reingehe, ist das weiterhin kein Problem. Will ich jedoch schreibend auf diese Datenbanken zugreifen, gibt es einen kleinen, feinen Unterschied, und der hat mich eine Weile beschäftigt. (mehr …)