[juneau-lug] Re: webify jpeg script
- From: Jamie <jamie@xxxxxxxxxxxxxxxxx>
- To: juneau-lug@xxxxxxxxxxxxx
- Date: Sun, 16 Mar 2008 18:39:12 -0800
Hello James,
Long time no hear. Are you back home for a while?
I didn't quit get what your goal is with this script. If you just want
to view jpg's locally why not use one of the many existing viewers that
will auto-size them to your screen and why bother with html? What am I
missing here?
For web viewing, you may be interested in seeing another solution. SCRY
http://scry.org/ is nice and simple. 23k to download. It uses GD lib
for image manipulation and creates a thumbnail and intermediate size
image on demand but caches them for future speed. You organize your
images by directory. So updating your web pages is as simple as adding
a image file (or symlink) into the structure. Setup is fast (they claim
2 minutes).
As it comes, SCRY doesn't do comments. But it is able to report out
exif data and exif data can contain a comment (limited to 256 chars, I
think). So I tweaked the code to have it display the embedded comment
and that works fine.
What other projects you working on these days?
-Jamie
James Zuelow wrote:
> I have a small script I use to resize jpeg images and put them into html
> wrappers with comments. I am in tweak mode, so version 0.4 of the script
> will feature a big warning telling the user that jpeg images in the current
> directory will be permanently resized (I chattr +i all of my images, but
> other users might be upset when they reduce all of their photos to 800x600),
> allow user entered comments for the index page (currently I just edit it with
> vi after running the script) and user entered alternate text for images
> (currently it just uses the image name as alternate text).
>
> I thought it would be a good idea to also make the script a bit more
> portable.
> As I am a KDE fanboy, it is set up for KDE only. Since my bandwidth isn't so
> hot, I don't want to pull Gnome down for testing.
>
> So questions for the group:
>
> 1) How would one determine whether you are running KDE or Gnome from a bash
> script running in an xterm? Since a user could have both installed, checking
> for files wouldn't work, and you can start KDE from gdm and Gnome from kdm,
> so checking which is running won't work either. I suppose checking for a
> running instance of kdesktop or kdeinit would work for KDE, as long as the
> user only has one session open. But I can have multiple sessions open with
> different GUIs and I only want to know which environment the script is being
> run in.
>
> 2) What is a Gnome equivalent to this line:
>
> kstart --type Tool display ${newimage} 2> /dev/null
>
> kstart is part of KDE. /usr/bin/display is part of imagemagick. What kstart
> is doing is pulling up display in tool mode, so that it does not grab focus
> from the xterm window. The user is expected to enter comments about the
> photos, and I didn't like having to click on the xterm when the script pulled
> up a viewer. Output from display goes to /dev/null to keep it from echoing
> stuff to the xterm the script is running in. The user should just need to
> type a comment, hit enter, and the photo will change to the next one while
> the script waits for the user to input text for the new photo. Very quick
> and easy.
>
> Does Gnome have a similar tool or syntax that can open display without giving
> it focus with the mouse and keyboard? (Please test any possible solutions --
> the KDE manpages all refer to a "--nograb" option for starting apps in KDE
> that allegedly prevents the newly opened app from grabbing focus. But it
> never seemed to work that way. I always needed to click back onto the xterm
> window, taking my hands off of the keyboard.)
>
> Anyhow, here is the current 0.3 version. Yes, I know it isn't the most
> elegant solution. I tend to brute force my scripts.
>
> ----------------------------------------------------------------------------------------------------------
> beware of lines wrapping if you copy & paste. Each line begins with
> whitespace.
> ----------------------------------------------------------------------------------------------------------
>
> #!/bin/bash
> #################################################
> # webify.sh 0.3
> # simply puts an html wrapper around jpegs that
> # will be resized to 800x600 (or 600x800) with
> # mogrify and displayed with display.
> # Depends on ImageMagick and KDE.
> # this version does not link to external websites
> # but could be modified to do so.
> # James Zuelow // Juneau Linux User's Group
> # Camp Mike Spann, Afghanistan August 31 2007
> # v0.3 September 12 2007
> ################################################
> nojpeg(){
> echo " No jpegs found!"
> exit
> }
> echo " Ensure your photos are jpegs, and that their orientation is
> correct."
> echo " Your photos will be ordered however the ls command orders them."
> echo " To escape the script, just hit enter when prompted for a base
> image name."
> echo " ---"
> echo "Checking for jpeg files. Script will exit if none found."
> ls . | grep -i .jpg &> /dev/null || nojpeg
> (( i = 101 ))
> (( j = 101 ))
> (( k = 0 ))
> (( l = 0 ))
> echo -n "Enter base image name: "
> read basename
> if [ -z "${basename}" ]
> then
> echo "Quitting"
> exit
> fi
> for oldimage in `ls . | grep -i .jpg`
> do
> mv ${oldimage} ${basename}-${i}.jpg
> (( i++ ))
> done
> (( m = i - 1 ))
> echo -n " Sizing images:"
> for sizetarget in `ls *.jpg`
> do
> mogrify -resize @480000 ${sizetarget}
> echo -n "."
> done
> echo -e "\nDone resizing."
> echo "<HTML><HEAD>" > index.html
> echo "<META HTTP-EQUIV=\"CONTENT-TYPE\" CONTENT=\"text/html\">" >> index.html
> echo "<TITLE>${basename} index</TITLE>" >> index.html
> echo "<!webify.sh 0.3 James Zuelow // Juneau Linux Users Group Aug-Sep 07 //
> MeS Afghanistan></HEAD>" >> index.html
> echo "<BODY bgcolor=\"#000000\" text=\"#ffff99\">" >> index.html
> echo "<CENTER>" >> index.html
> echo "<A HREF=\"${basename}-101.html\">Start Show</A>" >> index.html
> echo "</CENTER></BODY></HTML>" >> index.html
> for newimage in `ls *.jpg`
> do
> prv=""
> nxt=""
> echo "<HTML><HEAD>" > ${basename}-${j}.html
> echo "<META HTTP-EQUIV=\"CONTENT-TYPE\" CONTENT=\"text/html\">" >>
> ${basename}-${j}.html
> echo "<TITLE>${basename} ${j}</TITLE>" >> ${basename}-${j}.html
> echo "<!webify.sh 0.3 James Zuelow // Juneau Linux Users Group
> Aug-Sep
> 07 // MeS Afghanistan></HEAD>" >> ${basename}-${j}.html
> echo "<BODY bgcolor=\"#000000\" text=\"#ffff99\">" >>
> ${basename}-${j}.html
> echo "<CENTER>" >> ${basename}-${j}.html
> if [ $j -ne 101 ]
> then
> (( k = j - 1 ))
> prv="<A HREF=\"${basename}-${k}.html\">Previous</A>"
> fi
> if [ $j -lt $m ]
> then
> (( l = j + 1 ))
> nxt="<A HREF=\"${basename}-${l}.html\">Next</A>"
> fi
> echo "<P>${prv} ${nxt}</P>" >> ${basename}-${j}.html
> echo "<IMG SRC=\"${newimage}\" ALT=\"${newimage}\">" >>
> ${basename}-${j}.html
> kstart --type Tool display ${newimage} 2> /dev/null
> echo -n "Enter comment for ${newimage}: "
> read comment
> echo "<P>${comment}</P>" >> ${basename}-${j}.html
> echo "<BR><BR><BR><HR WIDTH=\"50%\"><CITE>James Zuelow 2007</CITE><HR
> WIDTH=\"25%\">" >> ${basename}-${j}.html
> echo "</BODY></HTML>" >> ${basename}-${j}.html
> killall display &> /dev/null
> (( j++ ))
> done
> ------------------------------------
> The Juneau Linux Users Group -- http://www.juneau-lug.org
> This is the Juneau-LUG mailing list.
> To unsubscribe, send an e-mail to juneau-lug-request@xxxxxxxxxxxxx with the
> word unsubscribe in the subject header.
>
--
Browns Homepage - new pics 20 Jan 2008 - http://jdb.homelinux.net
--
Registered Linux User No: 187845 http://counter.li.org/
------------------------------------
The Juneau Linux Users Group -- http://www.juneau-lug.org
This is the Juneau-LUG mailing list.
To unsubscribe, send an e-mail to juneau-lug-request@xxxxxxxxxxxxx with the
word unsubscribe in the subject header.
- Follow-Ups:
- [juneau-lug] Re: webify jpeg script
- From: James Zuelow
- References:
- [juneau-lug] webify jpeg script
- From: James Zuelow
Other related posts:
- » [juneau-lug] webify jpeg script
- » [juneau-lug] Re: webify jpeg script
- » [juneau-lug] Re: webify jpeg script
- [juneau-lug] Re: webify jpeg script
- From: James Zuelow
- [juneau-lug] webify jpeg script
- From: James Zuelow