ubuntuusers.de

JPEG verkleinern ohne imagemagick (convert, mogrify..)

Status: Ungelöst | Ubuntu-Version: Server 14.10 (Utopic Unicorn)
Antworten |

Kekz

Anmeldungsdatum:
30. Juni 2005

Beiträge: 81

Hallo,

ich habe einen OpenWRT-Rooter auf dem ich per Bash Script JPEGs verkleinern möchte. Leider kann ich kein imagemagick installieren, da ich nicht genügend Speicherplatz auf dem Router habe 😲 😲 😲

1
2
3
4
5
root@OpenWrt:/tmp# opkg install imagick.ipk 
Installing imagemagick (6.7.8-1) to root...
Collected errors:
 * verify_pkg_installable: Only have 168kb available on filesystem /overlay, pkg imagemagick needs 779
 * opkg_install_cmd: Cannot install package imagemagick.

Daher suche ich eine kleinere Alternative zu imagemagick. Es muss kein fertiges Paket sein, Bashscript oder C File tut zur Not auch.

verdooft

Anmeldungsdatum:
15. September 2012

Beiträge: 4286

Hallo,

kannst du da zusätzliche Dateien nicht extern ablegen, USB Stick z.B.?

Vielleicht ist jpegoptim was für dich.

ls -al /usr/bin/jpegoptim
-rwxr-xr-x 1 root root 28128 Jun  4  2014 /usr/bin/jpegoptim

Das ganze Paket braucht installiert allerdings 72 KiB, Doc und Manpage kannst du ja vorher entfernen.

Wobei ich da nix von Auflösung ändern sehe, nur Qualität und:

-S<size>, --size=<size>
             Try to optimize file to given size (disables lossless optimization mode). Target size is specified either in kilobytes (1 - n) or as percentage (1% - 99%)  of  the  original  file
             size.

und exif etc. entfernen.

Sonst kann man ausführbare Dateien auch noch kleiner machen:

upx --best jpegoptim
...
        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
     28128 ->     13964   49.64%  linux/ElfAMD   jpegoptim                     

Packed 1 file.

😀

mrkramps Team-Icon

Avatar von mrkramps

Anmeldungsdatum:
10. Oktober 2006

Beiträge: 5523

Wohnort: south central EL

Was läuft denn sonst so auf dem Rooter an Laufzeitumgebungen wie bspw. Python, Perl, Ruby oder PHP? Die würden aber alle - vermutlich auch C/C++ - irgendeine Bibliothek bauchen, die notwendige Funktionen für Bildbearbeitung bereitstellt.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13075

Kekz schrieb:

Daher suche ich eine kleinere Alternative zu imagemagick.

GraphicsMagick behauptet zumindest, kleiner zu sein. Auf meinem Xubuntu 14.04 64bit sind es 4,5MB (in Blöcken gerechnet). Vielleicht ist das eine Option?

1
2
$ dpkg-query -L graphicsmagick | xargs -d \\n stat -c '%b %B' | awk '{s+=$1*$2}END{print s/1024/1024}'
4.53906

mrkramps Team-Icon

Avatar von mrkramps

Anmeldungsdatum:
10. Oktober 2006

Beiträge: 5523

Wohnort: south central EL

Ich glaube, mann muss hier schon zusehen, dass man das mit bereits installierten Mitteln umsetzt. Der Fehlermeldung oben entnehme ich doch richtig, dass auf dem System effektiv nur noch 168kb frei sind?

paul-scheinast

Anmeldungsdatum:
10. April 2015

Beiträge: Zähle...

Via Bash:

1
mogrify -resize 166x125 file.jpg

Ich nute Folgendes Script um alle Bilder in einem Ordner zu verleinern:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
!/usr/bin/perl
opendir(DIR, "./");
@files =  grep { /\.jpg$|\.gif$/io } readdir(DIR);
sleep(10);
$count=0;
for(@files){
print "".(($count*100)/$#files)."% ".$_." - ";
$cach = 'convert "./'.$_.'" -print "%wx%h" /dev/null';
$size = `$cach`;
$size =~ /^(.+)x(.+)$/o;
print " - ".$1.":".$2;
if(defined($1) && defined($2) && ($1 > 166 || $2 > 125)){
system('mogrify -resize 166x125 "./'.$_.'"');
}
++$count;
print $/;
}
closedir(DIR);

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13075

paul-scheinast schrieb:

1
mogrify -resize 166x125 file.jpg

Es war ausdrücklich ohne ImageMagick gefordert.

djcj

Avatar von djcj

Anmeldungsdatum:
28. August 2013

Beiträge: 240

Only have 168kb available on filesystem /overlay, pkg imagemagick needs 779

Gibts keine Möglichkeit 611kb frei zu bekommen? Z.B. bestimmte Datein mit UPX komprimieren?

edit:

Heißt "verkleinern" Dateigröße minimieren, oder Auflösung ändern? Falls es nur um Dateigröße geht, könnten die libjpeg-turbo-progs eine Möglichkeit sein. Die sind bei mir hier alle zusammen 100kb groß und benötigen nur libjpeg. Allerdings kann wohl keines der Tools Auflösungen ändern.

paul-scheinast

Anmeldungsdatum:
10. April 2015

Beiträge: 12

rklm schrieb:

paul-scheinast schrieb:

1
mogrify -resize 166x125 file.jpg

Es war ausdrücklich ohne ImageMagick gefordert.

Ja stimmt habe gegoogelt und gesehen das es im Paket inkludiert ist, habe gedacht ich habe es aus einer anderen Quelle.

verdooft

Anmeldungsdatum:
15. September 2012

Beiträge: 4286

Auf dem Rooter wird doch irgendwas sein, was man löschen kann. Dokumentationen, Manpages, Übersetzungen von x Sprachen..., oder man komprimiert paar andere ausführbare Dateien mit Upx. Die Frage ist jetzt lange her, wurde denn mittlerweile eine Lösung gefunden? Welche Bibliotheken zur Bildbearbeitung sind denn installiert, vielleicht kann man mit KI ein kleines Programm basteln. Wäre die Frage nach Dateigröße ändern oder Auflösung ändern beantwortet, hätte ich das schon versucht.

micneu

Avatar von micneu

Anmeldungsdatum:
19. Januar 2021

Beiträge: 554

Wohnort: Hamburg

FRAGE:

  • Warum OpenWRT im Ubuntu Forum?

  • Warum BILDER auf einem OpenWRT verkleinern (nach meiner Meinung gehören solche Aufgaben nicht auf eine Firewall/Router?

  • Warum machst du das nicht auf einem Ubuntu mit imagemagick?

Nach meiner Meinung, gehe in ein OpenWRT Forum und frage dort, die können dir das beantworten

fleet_street

Top-Wikiautor
Avatar von fleet_street

Anmeldungsdatum:
30. August 2016

Beiträge: 2400

Wohnort: Hunsrück (dunkle Seite)

Guckt bitte auf das Datum. Das Thema ist uralt!

Da war gestern noch ein Beitrag, der das Thema ausgegraben hat. Dieser Beitrag ist nun weg. Damit sollte sich auch das Interesse in Wohlgefallen aufgelöst haben. Ansonsten: Bitte neues Thema aufmachen.

Antworten |