Portál AbcLinuxu, 1. května 2025 04:52
Výchozí situace:
Uživatel potřebuje odeslat větší množství obrázků z fotoaparátu e-mailem. Hromadná úprava v Gimpu či jiných aplikacích je zdlouhavá. Na linuxových stanicích mám Fedoru s KDE.
Skript pro úpravu a odeslání obrázků pomocí Kmailu:
Název souboru: mailimages
#!/bin/bash archive_basename=images.zip archive_dir=/tmp archive=$archive_dir/$archive_basename dialog=$(kdialog --title ' Úprava obrázků pro e-mail' --progressbar 'Úprava obrázků pro e-mail' $#) current_step=0 for src in "$@" do echo "--------------> $src" name=$(basename $src) dst="/tmp/$name" dcop $dialog setLabel "Upravuji $name" convert -geometry 800x600 -quality 75 "$src" "$dst" && zip "$archive" "$dst" && rm "$dst" current_step=$(($current_step+1)) dcop $dialog setProgress $current_step done dcop $dialog setLabel "Otevírám editor e-mailů.." kmail=$(dcopstart kmail) dcop $kmail KMailIface openComposer "" "" "" "" " Připojeno je několik obrázků v archivu $archive_basename" "" "" "$archive" dcop $dialog close kdialog --msgbox "Nyní můžete odeslat svoji e-mailovou zprávu!" --title "Oznámení" rm "$archive"
Umístění do menu Činnosti pod pravým tlačítkem myši:
Soubor s názvem .desktop
umístíme do /usr/share/apps/konqueror/servicemenus
[Desktop Entry] ServiceTypes=image/* Actions=mail_images [Desktop Action mail_images] Name=Poslat obrázky e-mailem Exec=mailimages %U
Podobná úprava bez odesílání kmailem:
#!/bin/bash archive_basename=images.zip archive_dir=/tmp archive=$archive_dir/$archive_basename dialog=$(kdialog --title 'Právě probíhá úprava obrázků' --progressbar 'Právě probíhá úprava obrázků' $#) current_step=0 for src in "$@" do echo "--------------> $src" name=$(basename $src) dst="/tmp/$name" dcop $dialog setLabel "Upravuji $name" convert -geometry 800x600 -quality 75 "$src" "$dst" && zip "$archive" "$dst" && rm "$dst" current_step=$(($current_step+1)) dcop $dialog setProgress $current_step done dcop $dialog setLabel "Otevírám výsledek v novém okně.." konqueror=$(dcopstart konqueror /tmp/images.zip) dcop $dialog close kdialog --msgbox "Kliknutím na tlačítko OK vymažete archiv z dočasného adresáře." --title "Oznámení" rm "$archive"
Zdroje (děkuji):
* Linux + 2/2007: Charles Fleche: Ahtomatizace KDE
* ABC Linuxu: KDE: tipy a triky - III (DCOP a KDialog)
Tiskni
Sdílej:
current_step=$(($current_step+1))((current_step++))
name=$(basename $src)Lepší bude tohle:
name=${src##*/}
Zdravím. Díky za reakci. Mám k tomu několik poznámek, přesto bych byl rád, kdybys mi na ně odpověděl, protože pokud to budeš považovat za neetické příspěvek rád smažu:
1) Článek mne inspiroval přesto postup není okopírovaný. Prošel jsem jím řádek za řádkem, vyzkoušel ho, odstranil chyby a upravil jsem postup a rozšířil ho pro svou potřebu. (Skript z Linux + korektně nefungoval. Kromě toho si myslím, že se toho nedá moc nového v tomto směru vymyslet...)
2) Uvedl jsem jej do blogu jako svůj osobní záznam (abych to nemusel příště hledat) s úmyslem, že to někomu může pomoct a právě proto, že jsem se inspiroval nepsal jsem to jako článek ale jako "zápisek".
3) I přes výše uvedené skutečnosti jsem uvedl oba zdroje ze kterých jsem při "revizi" čerpal.
Já opravu nevím. Pokud je to i tak "neetické" mohu to (bez problémů smazat). Takže prosím o radu - domníval jsem se, že to takto mohu udělat a že to navíc může být pro leckoho užitečné. Díky za názor.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.