Bob S wrote:
Hello SuSE folk,
This has nothing to do with anything about SuSE, but I know there are a lot of great people out there and expecially some very good graphics guys. I just put on my flame suit and am prepared to run and duck :-)
So here goes: My children bought me one of those digital picture frames this past Christmas. I loaded a whole bunch of family photos from my albums on it. It is set as a slide show and it keeps freezing randomly (every few days) on any random photo. So I emailed the company and here is their reply: ---------------------------------------- Good Morning Bob, We apologize for any inconvenience this might have caused. However, this is a symptom of having edited photos on whatever media type you are using to display your pictures. If you have edited any of your photos, even 1, you have changed the compression of that photo to a progressive .JPG & the frame will only display Standard .JPG's. You will need to re-save any edited pictures as standard JPG's & this should solve your freezing issues. If you have any additional questions feel free to respond for further assistance. Have a great day. ------------------------------------- Of course I did and they didn't
Now, of course I have edited many of these photos, some in the Gimp, others in other apps.
The million dollar question is; what the heck is a progressive JPG and how do I resave it. I looked at the meta info on several and some are quite different.
Reply privately so I don't tick off the guys anymore.
Sorry guys, really!
Bob S
Bob, I have one of the picture frames as well that I must reformat all pictures to 800x600. I have experienced crashes of the picture frame as well. The most likely culprit is a corrupt picture file that the frame is choking on. Additionally, if you have ever had a power or usb cable hiccup, you could have caused a corrupt portion of the frame memory. Not to worry, all is solvable. I know, I have experienced both. First, if you can identify a problematic picture, then, of course, delete it and reload it. Second, if it appears you have stray crud scattered across the picture frame flash drive, then it is time to reformat and reload the pictures. Basically, the frame memory is just the same flash memory as a usb drive and can be formatted just the same. Most frames use the fat32 format for the drive. I simply connected my drive to my pc and then re-formatted the drive. However, if I recall correctly, I did have to do that through windows since on my particular frame, it creates f:, g:, h:, j:, K; and l: drives with l: being the only actual flash memory drive and this drove openSuSE nuts on my laptop. I think I just booted windows, plugged the frame in, opened windows explorer, right clicked the highest letter drive and chose format. I can get to the pictures in openSuSE, but it usually takes searching through /system/media:... Good luck, it can be fairly easily fixed, you may just have to use a different cat. Also, as a pointer on picture frames and reformatting, I use imagemagick "convert" to convert all the 3 and 5 megabyte files down to ~100k in 800x600 format. Just put all the files you want to convert in a temporary directory of your choice. I then run the following little script to convert them all and get them ready to copy to the frame. (the include file "colors.inc" also follows below the script) You can just run the script with no arguments and it will give you basic usage information: 00:02 Rankin-P35a~/linux> cat scripts/cvt800 #!/bin/bash # . /home/david/linux/scripts/include/colors.inc # Set Test Options # TEST="false" # # Assign Command Line Arguments # SOURCE_PATH=$1 DESTINATION_PATH=$2 if [ -z "$3" ]; then FILESPEC="*.jpg" else FILESPEC=$3 fi if [ -z "$4" ]; then GEOMETRY=800x600 else case "$4" in [1-9]* ) GEOMETRY=$4;; * ) echo -e "\n\t${lightblue}Geometry must be given in a form similar to: ${red}800x600, etc.\n\t${green}Try Again!${nc}\n" exit 1;; esac fi # # Define Usage Information # usage () { echo -e "USAGE:\n" echo -e "\t${lightgray}cvt-resize ${lightblue}expands on the ImageMagick convert command by" echo -e "\t${lightblue}accepting a source and destination directory, filespec and" echo -e "\t${lightblue}geometry to resize all files in the source directory matching" echo -e "\t${lightblue}filespec to the specified geometry in the destination directory." echo -e "\t${red}**ALL ARGUMENTS ARE REQUIRED (currently)\n" echo -e "\t${lightgray}Usage: cvt-resize [source dir] [destination dir] ['filespec'] [geometry]\n" echo -e "\t\t${purple}[source and destination dir] - ${red}Include trailing / ${blue}(default=.)" echo -e "\t\t${purple}[filespec] - ${green}Example '*.jpg' - ${red}single quotes required! ${blue}(default=*.jpg)" echo -e "\t\t${purple}[geometry] - ${green}Example 800x600 ${blue}(default=800x600)\n" echo -e "\t${green}Try Again...\n${nc}" } # # Define a Check of Command Line Arguments # check_cli_args () { echo -e "\nChecking Command Line Arguments\n" if [[ -d $SOURCE_PATH ]]; then echo -e "\t${green}Using SOURCE_PATH = $SOURCE_PATH${nc}" else echo -e "${red}\tSOURCE_PATH not found or does not exist -- exiting${nc}\n" usage exit 1 fi if [[ -d $DESTINATION_PATH ]]; then echo -e "\t${green}Using DESTINATION_PATH = $DESTINATION_PATH${nc}" else echo -e "${red}\tDESTINATION_PATH not found or does not exist -- exiting\n${nc}" usage exit 1 fi if [[ -n $FILESPEC ]]; then echo -e "${green}\tUsing FILESPEC = $FILESPEC${nc}" else echo -e "${red}\tInvalid FILESPEC specified -- exiting\n${nc}" usage exit 1 fi if [[ -n $GEOMETRY ]]; then echo -e "${green}\tUsing GEOMETRY = $GEOMETRY${nc}\n" else echo -e "${red}\tInvalid GEOMETRY specified -- exiting\n${nc}" usage exit 1 fi } echo_input () { echo -e "\tSOURCE_PATH = $SOURCE_PATH" echo -e "\tDESTINATION_PATH = $DESTINATION_PATH" echo -e "\tUsing FILESPEC = $FILESPEC" echo -e "\tUsing GEOMETRY = $GEOMETRY" } if [[ $TEST == "true" ]]; then echo_input fi # # Begin the cvt800 conversion; Initially check command line artuments # check_cli_args # # Set IFS - required so the loop only breaks on newlines not spaces # if there are spaces in the filenames returned to $LIST # oldIFS=$IFS IFS=$'\n' # # Read the files into LIST # LIST="$(ls $SOURCE_PATH$FILESPEC)" echo -e "Beginning File Conversion to $GEOMETRY...\n" for i in $LIST; do FILE=`basename "$i"` echo -e -n "\tConverting: ${lightblue}$FILE${nc}" if convert -resize $GEOMETRY -quality 85 "$i" "$DESTINATION_PATH$FILE"; then echo -e "\t\t\t${green}[OK]${nc}" else echo -e "\t\t\t${red}[Failed]${nc}" fi done # # Restore original IFS # IFS=$oldIFS # echo -e "\n\t${green}--------- FINISHED ---------${nc}\n" 00:02 Rankin-P35a~/linux> cat scripts/include/colors.inc ########################################################################## # # Colors Include # # # Example Use: echo -e "${red}Text${nc}" # or # echo -ne "${red}";\ # uptime;\ # echo -ne "${nc}" # # Note: always terminate colors with ${nc} # ########################################################################## # black='\e[0;30m' blue='\e[0;34m' green='\e[0;32m' cyan='\e[0;36m' red='\e[0;31m' purple='\e[0;35m' brown='\e[0;33m' lightgray='\e[0;37m' darkgray='\e[1;30m' lightblue='\e[1;34m' lightgreen='\e[1;32m' lightcyan='\e[1;36m' lightred='\e[1;31m' lightpurple='\e[1;35m' yellow='\e[1;33m' white='\e[1;37m' nc='\e[0m' Have fun. -- David C. Rankin, J.D., P.E. Rankin Law Firm, PLLC 510 Ochiltree Street Nacogdoches, Texas 75961 Telephone: (936) 715-9333 Facsimile: (936) 715-9339 www.rankinlawfirm.com -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org