Regarding image manipulation, I use GIMP, and have no complaints. To be fair, I can't say as I've meaningfully used photoshop, and not at all in any remotely recent incarnation, so I may be biased. What I have not looked for in GIMP is automation that I use regularly. For that, I use imagemagick and bash scripting. For starters, to make thumbnails smaller thumbnails of the images in a directory and put them in a subdir you can use something like:
Code: Select all
find . -maxdepth 1 -name "*.jpg"|while read i; do convert "$i" -resize 1024x1024 -quality 60 ./small/"`basename "$i" .jpg`-1024.jpg"; done
Since you describe yourself as starting from little knowledge I'll break this down in detail. Sorry if this is going into too much detail. For starters, the meaning of "find" should be obvious. The dot tells it to look in the directory your shell session currently is in. The "-maxdepth 1" tells it not to look below that directory. The argument to "-name" includes the "*" wildcard, so this will find /anything/ whose name ends in ".jpg" -- which can be a greedy beast, and finer controls exist. The pipe tells this command to feed the images it finds to the next command.
"while" starts a loop, and the "read i" makes it work on each of the images found in turn, with the semi-colon a needed separation. "do" is what to do with each image in turn. "convert" is one of the several imagemagick commands; this one takes an image in, does something to it (according to the operations listed in the middle), and feeds the output to another image file. "$i" refers back to the current image the loop is working on (and is quoted to prevent misbehavior). "-resize 1024x1024" tells convert to resize each picture to a maximum size of 1024 pixels in either dimension (it will maintain proportion unless you explicitly tell it not to). "-quality 60" refers to jpg compression level.
"./small/" will put the resulting image in a subdirectory of that name (this command will fail if this doesn't exist). "`basename "$i" .jpg`" is running a separate command that will strip off the ".jpg" from the end of the image name the loop is working on, and the trailing "-1024.jpg" will cause it to add back the suffix with a note about the pixel size of the image before it. Finally, there is another semi-colon separation and the "done" terminates the loop.
This particular example will not fiddle with the picture foo.JPG because of case sensitivity, but there /are/ ways to make it take these in.
Start playing with the command line (take a little care; it does what you tell it, even if what you tell it amounts to "shoot myself in the foot"). That said, my worst mistakes so far have actually been with GUI programs (like deleting the wrong partition without a perfect backup). For me, it is the shell and the ability to run a computer practically without the mouse that makes going to either mac (which at least has a reasonable, if somewhat lacking (possibly by default only) in commands, shell) or windows unthinkable for me.
On window managers, I've never liked gnome, really liked KDE 3.5, never entirely liked KDE 4.x, and have since gone to Ratpoison (that I cannot recommend to a beginner). Ratpoison takes getting used to, and you need to have some commands memorized or recorded before you even think of trying it, because when you first start it, you get... a /blank/ wallpaper and /nothing/ you do with the mouse will do /anything/.