[Digikam-users] how to resize image to a new and smaller formate -

Guy Stalnaker jimmyg521 at gmail.com
Mon Apr 9 01:10:48 BST 2012


You should still be able to use his script with one slight modification. 
So you can do this two ways. Though I use the zsh shell which is quite 
similar, you likely use the bash shell, which is the default for nearly 
every Linux distribution.


Way #1:

for I in *.jpg ; do
   convert -resize 800x600 $I ${I%.jpg}_resized.jpg ;
   echo -n "." ;
done

Way #2

for I in *.jpg ; do convert ${I} ${I%.jpg}_resized.jpg ; done

I usually do this on a single line which is why I showed the second one :-)

Note the change. The second $I becomes ${I%.jpg}_resized.jpg -- the 
%.jpg is the part that tells bash that the part of the filename that 
follows the % should be removed and then what follows the } will be 
added. Thus the .jpg in the first filename becomes _resized.jpg in the 
second one:

DSCN_20120310T193618.jpg
DSCN_20120310T193618_resized.jpg

I tested this and it works. Note how useful this is :-) You can convert 
from one type of file to another:

${I%.tif}.jpg

Do bulk convert modifications for resizing, gamma correction, saturation 
mods to a group of files. The nice thing here is that you get to keep 
the first set of files unmodified if you add the }_modified.ext for each 
pass. It's usually good to keep the original unmodified files in case 
something goes awry. And things will go awry.

Hope this helps.

In case you wonder, for the zsh shell the command to resize is:

for i in *.jpg ; do convert -resize 800x600 ${i} 
${i:s/.jpg/_resized.jpg/} ; done

This follows very closely conventions in the vi(m) editor where s/x/y/ 
is the search/replace command: s/what_to_find/change_what_to_this/

Guy

On 04/08/2012 06:28 PM, Martin Kaspar wrote:
>
> hello dear list, hello dear Remco
>
> many thanks for the quick reply.
>
> i had a quick look at the machine - i have the necessary libraries to
> performe the little script you suggested .
>
> ssee here the preliminary - i have the following preliminary things on
> my machine.
>
> martin at linux-wyee:~> rpm -qf $(which convert)
> ImageMagick-6.7.2.7-5.1.3.i586
> martin at linux-wyee:~>
>
>
> but this script does not run  - as target and sourcde are the same.
>
>
> for I in *.jpg ; do
>         convert -resize 800x600 $I $I ;
>         echo -n "." ;
>
>
> well - if all the  files are in one folder - how should i re-design the
> script.
> there have to be different names - ohterwise convert or bash will be
> complaining..
>
> can you help out here -
> note: all the files are in the same folder
>
>
> look forward to hear from  you
>
> greetings
> matze
>
>
>
> On Sun, Apr 8, 2012 at 2:09 PM, Remco Viëtor <remco.vietor at wanadoo.fr
> <mailto:remco.vietor at wanadoo.fr>> wrote:
>
>     On Sunday 08 April 2012 12:46:33 jdd wrote:
>      > Le 08/04/2012 13:04, Martin Kaspar a écrit :
>      >
>      > >   i have a bunch of photos that i want to show in a image slider on
>      > > the Web.
>
>      > or better, use a scrit like mine:
>      >
>      > for I in *.jpg ; do
>      >       convert -resize 800x600 $I $I ;
>      >       echo -n "." ;
>      >
>      > done
>
>     Just be aware that that script, as written, overwrites the original
>     file,
>     which might not be what you want
>
>     Remco
>     _______________________________________________
>     Digikam-users mailing list
>     Digikam-users at kde.org <mailto:Digikam-users at kde.org>
>     https://mail.kde.org/mailman/listinfo/digikam-users
>
>
>
>
> _______________________________________________
> Digikam-users mailing list
> Digikam-users at kde.org
> https://mail.kde.org/mailman/listinfo/digikam-users

-- 
"There is only love, and then oblivion. Love is all we have
to set against hatred." (paraphrased) Ian McEwan

Guy Stalnaker
jimmyg521 at gmail.com



More information about the Digikam-users mailing list