Sending thumbnail image to browser

Hi,
I have web-application that lets users see a customized page. This page contains images that are stored in a table. Some of the images are thumbnails, and some are full size images.
So far I can send the full size images to the browser using the OrdHttpJspResponseHandler:
OrdImage media = (OrdImage)result.getCustomDatum(1, OrdImage.getFactory());
handler.setPageContext(pageContext);
handler.sendImage(media);
Is it possible to dynamically create a thumbnail image and send it to the browser instead of the full size image? I have seen code that uses the OrdImage.process() or OrdImage.processCopy() functions. Both these functions are used to update the image in a table. Is it possible to do the same but leave the original image unchanged? I don't need to store the thumbnail images in the database table. I am thinking of something like this:
OrdImage media = (OrdImage)result.getCustomDatum(1, OrdImage.getFactory());
handler.setPageContext(pageContext);
- - >>> process image here ????
handler.sendImage(media);

First of all...let me state that in most cases THIS IS A VERY BAD IDEA. Image processing is very CPU intensive. Most thumbnails take only a fraction of the original image space, so it is BEST TO PREPROCESS THUMBNAILS in most cases.
For example, let us say we have an image that is 1000X1000, no compression. It is
1,000,000 bytes. A LARGE thumbnail that is 1/4 the size would be 250X250 or 62,500 bytes.
1,000,000 - Original (uncompressed)
62,500 - thumbnail (uncompressed).
As you can see, the thumbnail takes less than 1/10 the original image. After Compression will probably make it about 1/10.
So the question is, do you want to make your on-line users wait? Or do you want to pre-process the image so your application is quicker?
The processing will affect, not only the user waiting for the processing the image, but others as well who are waiting for CPU time.
OK that being said, if you don't see the error of you ways, or if scaling is done so infrequently that it does not matter, or you have some other VERY SPECIAL CASE, here is the rope you can hang yourself on.
It takes a URL of the form:
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Types;
import java.sql.PreparedStatement;
import javax.servlet.ServletException;
import javax.servlet.ServletConfig;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.naming.NamingException;
import oracle.jdbc.OracleResultSet;
import oracle.jdbc.OracleCallableStatement;
import oracle.jdbc.pool.OracleConnectionPoolDataSource;
import oracle.jdbc.pool.OraclePooledConnection;
import oracle.jdbc.driver.OracleConnection;
import oracle.ord.im.OrdImage;
import oracle.ord.im.OrdHttpResponseHandler;
import oracle.ord.im.OrdMultipartWrapper;
public class deliveryServletScale extends HttpServlet
OracleConnection conn = null;
String servletURL = null;
* Servlet initialization method.
public void init( ServletConfig config ) throws ServletException
super.init(config);
* Get a pooled database connection
private void getPooledConnection() throws SQLException, NamingException
javax.naming.InitialContext ic = new javax.naming.InitialContext();
OracleConnectionPoolDataSource ds = (OracleConnectionPoolDataSource)
ic.lookup("jdbc/pool/OracleMediaPoolDS");
OraclePooledConnection pc = (OraclePooledConnection)
ds.getPooledConnection();
conn = (OracleConnection)pc.getConnection();
// conn.setAutoCommit(false); // just query. No need for this
* Process an HTTP GET request used to deliver an image column
public void doGet( HttpServletRequest request,
HttpServletResponse response )
throws ServletException, IOException
String id = request.getParameter( "id" );
String procCmd = request.getParameter( "p" );
try
if (conn == null) getPooledConnection();
OracleCallableStatement cstmt = (OracleCallableStatement)
conn.prepareCall (
"declare " +
" imgobj ordimage; " +
" thmbobj ordimage := ordimage.init(); " +
"begin \n" +
" select image into imgobj from photos " +
" where id = ? ; \n" +
" DBMS_LOB.CreateTemporary(thmbobj.source.localdata, TRUE); " +
" imgobj.processCopy('" + procCmd + "', thmbobj);" +
" ? := thmbobj; " +
" dbms_lob.Freetemporary(thmbobj.source.localdata); " +
"end;");
cstmt.setString( 1, id );
cstmt.registerOutParameter(2, Types.STRUCT, "ORDIMAGE");
cstmt.execute();
OrdImage thumb =
(OrdImage)cstmt.getORAData(2, OrdImage.getORADataFactory());
cstmt.close();
// Create an OrdHttpResponseHandler object, then use it to retrieve
// the image from the database and deliver it to the browser.
OrdHttpResponseHandler handler =
new OrdHttpResponseHandler( request, response );
handler.sendImage( thumb );
catch (Exception se)
conn = null; // We may need a new connection
throw new ServletException(se);
}

Similar Messages

  • Customize the browser login thumbnail image?

    Is there a way to customize the thumbnail image on the initial login page that the browser shows before it launches iTunes software? It grabs the main Welcome page image for the icon right now but that does not make for a great icon, would like to be able to add another one. Is that even possible?
    Message was edited by: WebPhenom
    null

    Two things:
    The image you see isn't always your site's banner image. If you link directly to a track/group/division/section, you'll see the image that corresponds to the closest parent container that has an image.
    For example, if you send someone an iTunes URL that links directly to a track, the image that's displayed is the image you provided for the course in which the track is contained (and not your site's banner image).
    Second thing is this…most transfer CGI scripts simply retransmit the HTML Apple sends them in response to an end-user's iTunes U access request "as-is"…but, in principle, your transfer CGI could modify that HTML. There are no secrets contained within Apple's transfer HTML…it's just some JavaScript plus HTML (the JavaScript's main job is to check whether the end user has a browser capable of handling the embedded itmss: redirect). In fact, the very heart of Apple's HTML is the itmss: redirect. You could certainly modify that HTML at your discretion…so long as you pass along the itmss: redirect and its supporting code, the modified HTML would work. The link to the displayed image is contained within that HTML.
    Two warnings though…if you modify Apple's HTML to point to a local image, you'll be making the transfer HTML dependent on a local resource. If you local resource (a HTML server) goes down, iTunes U would stop working even though there would be no issues on Apple's end. You would have to be mindful of that. Additionally, Apple could modify the transfer HTML it sends us. That might break any local modification code…you'd have to be mindful of that too. It is for these reasons that I wouldn't necessarily recommend making any changes to the HTML Apple sends (and Apple might even discourage me from suggesting it )…but you should know that (so long as you willing to make the necessary changes) it is, in principle, possible to do what you want to do.

  • Thumbnail images in the event browser

    After about 20 minutes on FCPX the thumbnail images in the event browser randomaly disappear. If I move the scrubber bar over the blank thumbnail the image reappears but only for as long as I linger on the thumbnail. The audio track remains visible all the time. Changing the view or the scale doesn't help. It's difficult to find clips, as you can imagine. Anyone else having this problem? 

    Thanks Russ. After returning to original layout the problem subsided but returned after a longer time period (about two hours). I was just working (on a different project) and suddenly %90 of the thumbnails turned blue. I could still see the audio information but the pictures vanished. The picture returns when the scrubbing bar hovers over the thumbnail then disappears again when I take the bar away. This is incredibly frustrating. Could it be because I'm using a thunderboldt display off of my Mac Book Pro? Both are less than 1 year old and the Pro is (was) top of the line at the time. Blind as a bat. 

  • How can I send an image directly from the browser as an attachment, not a link?

    I'm wondering if there's a way-- either via some kind of add-on or a direct FF customization-- to send an image as an attachment rather than as a link? either right-clicking an image and selecting "send image" or dragging an image into a "new message" window in outlook for example merely adds a link to the image and I'd rather that the image itself was added as an attachment. this functionality is available in IE as "email picture," which is extremely useful.
    thanks for any insight here.

    It was not mentioned what the client is. If it is a browser, the image can be sent using hml img tag. If it is using streams, then u need to set content type to image/gif or image/jpg ( depending the image u r sending) using response obj.
    response.setContentType("image/gif");
    Bye...

  • Sending thumbnail of images to client on request using servlet/jsp

    hi
    can anybody tell me how can we send thumbnail of more than one image to client using servlet or jsp just the way we thumbnail of images in google

    Then create a servlet which uses Java 2D API to rezise the image and writes it to the outputstream of the response. Call that servlet in the <img> tag along with an unique request parameter identifying the image.

  • Send Image to browser - Firefox issue

    Hi,
    I have implemented the retrieval of an OrdImage from the DB and sending it to a browser using the OrdHttpJspResponseHandler:
    OrdImage media = (OrdImage)result.getCustomDatum(1, OrdImage.getFactory());
    handler.setPageContext(pageContext);
    handler.sendImage(media);
    This code works fine and the image displays on the browser, but only in Internet Explorer or Safari. When I try to retrieve the image using Firefox, the browser wants to download the image instead of displaying it. The downloaded image has the extension ".jsp". The downloaded file however, is a valid jpg-image because if I change the extension to ".jpg" I can view the image in any image viewer software.
    Does anybody know how to make this work?
    Markus

    I have no problem on OC4J and the following JSP....
    (Needs a photo table, and a URL of the form:
    http://<SERVER>:8888/examples/jsp/ExampleMediaDelivery.jsp?id=1
    Did you do a handler.setPageContent?
    <%@ page language="java" %>
    <%@ page import="oracle.ord.im.OrdHttpJspResponseHandler" %>
    <%@ page import="oracle.ord.im.OrdImage" %>
    <%@ page import="oracle.ord.im.OrdMediaUtil" %>
    <%@ page import="oracle.jdbc.pool.OracleConnectionPoolDataSource" %>
    <%@ page import="oracle.jdbc.pool.OraclePooledConnection" %>
    <%@ page import="oracle.jdbc.driver.OracleConnection" %>
    <%@ page import="oracle.jdbc.OraclePreparedStatement" %>
    <%@ page import="oracle.jdbc.OracleResultSet" %>
    <jsp:useBean id="handler" scope="page"
    class="oracle.ord.im.OrdHttpJspResponseHandler"/>
    <%
    // Get ID of image to fetch. We could get other parameters as well
    boolean imageSent = false;
    String id = request.getParameter( "id" );
    if ( id != null && !"".equals(id) )
    // Use a try block to ensure the JDBC connection is released
    OracleConnection conn = null;
    try
    // Get a connection from the pool. The SQL would be better done
    // from a factory....
    javax.naming.InitialContext ic = new javax.naming.InitialContext();
    OracleConnectionPoolDataSource ds = (OracleConnectionPoolDataSource)
    ic.lookup("jdbc/pool/OracleMediaPoolDS");
    OraclePooledConnection pc = (OraclePooledConnection)
    ds.getPooledConnection();
    conn = (OracleConnection)pc.getConnection();
    // Here, we go to the database and populate album with an image
    // from the database, Returns null if image not found or
    // image column is null (not populated).
    String imgSelectSQL = "select image from photos where id = " + id;
    OraclePreparedStatement stmt = (OraclePreparedStatement)
    conn.prepareStatement(imgSelectSQL);
    OracleResultSet rset = (OracleResultSet)stmt.executeQuery();
    rset.next();
    OrdImage imageProxy =
    (OrdImage)rset.getORAData("image", OrdImage.getORADataFactory());
    rset.close();
    if ( imageProxy == null)
    response.setStatus( response.SC_NOT_FOUND );
    return;
    // Send this image.
    handler.setPageContext( pageContext );
    handler.sendImage( imageProxy );
    imageSent = true;
    finally
    // Ensure the JDBC connection is released
    if (conn != null) conn.close();
    // Go to not found error
    if (imageSent) return;
    %>
    <%-- The request does not include a key to the row --%>
    <html lang="EN"><head><title>ExampleMediaDelivery.jsp - malformed URL</title></head>
    <body><h1>ExampleMediaDelivery.jsp - malformed URL</h1>
    </body></html>

  • Sending Image to Browser

    Hello Guys !
    I need to load TIFF Image on Browser. Before this I'm converting to JPEG format whitout saving image on disk, just sending it to browser. This is the point: how can I format image in HTML format ?
    response.setContentType("image/jpeg");       
            ServletOutputStream sos = response.getOutputStream();
            RenderedOp src = JAI.create("fileload", "g:\\java\\00000001.TIF");
            ImageEncoder encoder = ImageCodec.createImageEncoder("JPEG",sos,null);       
            encoder.encode(src);Thanks !

    OK ! Now I see. But I don't know how to do that.
    I created a JSP FILE:
    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>
    <%@page import="obj.*"%>
    <%
      NewServlet objServlet = new NewServlet(); 
      out.println("<img src=" + ?????????? + "/>"); 
    %>
    <html>
    <head><title>Image View</title></head>
    <body>
    </body>
    </html>And have a code in NewServlet:
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {       
            response.setContentType("image/jpeg");       
            ServletOutputStream sos = response.getOutputStream();
            RenderedOp src = JAI.create("fileload", "g:\\java\\00000001.TIF");
            ImageEncoder encoder = ImageCodec.createImageEncoder("JPEG",sos,null);       
            encoder.encode(src);       
        }HOW CAN I LINK THE NEWSERVLET WITH JSP FILE ???
    PS: I HOPE I'M NOT BORING YOU !!!!
    THANKS !

  • Send image to browser with cfcontent not download prompt

    I'm sending an image to be downloaded using cfcontent
    <cfheader name="Content-disposition" value="attachment;filename=#getit.file#">
    <cfcontent type="image/jpg" file="#physicalpath#\#getit.file#">
    Can I have the image sent to the browser instead of a download prompt?

    If the image isn't accessible directly via HTTP, you can use CF to serve it. Your CF page would have the CFCONTENT tag as you showed in your original post, then you'd use IMG tags in other pages pointing to that CF page:
    <img src="myimage.cfm?id=whatever"/>
    You wouldn't need the CFHEADER to specify it as an attachment, though - that's only for when you want to prompt the user to download a file without having it handled natively by the browser.
    Dave Watts, CTO, Fig Leaf Software
    http://www.figleaf.com/
    http://training.figleaf.com/

  • Safari won't display thumbnail images

    Hello everyone. I have encountered a small issue about thumnail images in Safari. At first I thought this is an issue of a specific website but I figured out that it's an issue with my Safari browser. So, as you can see the top screenshot is from Safari which doesn't show thumbnail images and the bottom one is from Chrome which shows thumbnails perfectly. I love to use Safari as my default web browser and I have no plan to change to another web browser. So, is there anyone who can help me address this issue? Thank you in advance!

    1. This procedure is a diagnostic test. It changes nothing, for better or worse, and therefore will not, in itself, solve the problem.
    2. If you don't already have a current backup, back up all data before doing anything else. The backup is necessary on general principle, not because of anything in the test procedure. There are ways to back up a computer that isn't fully functional. Ask if you need guidance.
    3. Below are instructions to run a UNIX shell script, a type of program. All it does is to collect information about the state of the computer. That information goes nowhere unless you choose to share it. However, you should be cautious about running any kind of program (not just a shell script) at the request of a stranger on a public message board. If you have doubts, search this site for other discussions in which this procedure has been followed without any report of ill effects. If you can't satisfy yourself that the instructions are safe, don't follow them. Ask for other options.
    Here's a summary of what you need to do, if you choose to proceed: Copy a line of text from this web page into the window of another application. Wait for the script to run. It usually takes a few minutes. Then paste the results, which will have been copied automatically, back into a reply on this page. The sequence is: copy, paste, wait, paste again. Details follow.
    4. You may have started the computer in "safe" mode. Preferably, these steps should be taken in “normal” mode. If the system is now in safe mode and works well enough in normal mode to run the test, restart as usual. If you can only test in safe mode, do that.
    5. If you have more than one user, and the one affected by the problem is not an administrator, then please run the test twice: once while logged in as the affected user, and once as an administrator. The results may be different. The user that is created automatically on a new computer when you start it for the first time is an administrator. If you can't log in as an administrator, test as the affected user. Most personal Macs have only one user, and in that case this section doesn’t apply.
    6. The script is a single long line, all of which must be selected. You can accomplish this easily by triple-clicking  anywhere in the line. The whole line will highlight, though you may not see all of it in the browser window, and you can then copy it. If you try to select the line by dragging across the part you can see, you won't get all of it.
    Triple-click anywhere in the line of text below on this page to select it:
    PATH=/usr/bin:/bin:/usr/sbin:/sbin; clear; Fb='%s\n\t(%s)\n'; Fm='\n%s\n\n%s\n'; Fr='\nRAM details\n%s\n'; Fs='\n%s: %s\n'; Fu='user %s%%, system %s%%'; PB="/usr/libexec/PlistBuddy -c Print"; A () { [[ a -eq 0 ]]; }; M () { find -L "$d" -type f | while read f; do file -b "$f" | egrep -lq XML\|exec && echo $f; done; }; Pc () { o=`grep -v '^ *#' "$2"`; Pm "$1"; }; Pm () { [[ "$o" ]] && o=`sed -E '/^ *$/d; s/^ */   /; s/[-0-9A-Fa-f]{22,}/UUID/g' <<< "$o"` && printf "$Fm" "$1" "$o"; }; Pp () { o=`$PB "$2" | awk -F'= ' \/$3'/{print $2}'`; Pm "$1"; }; Ps () { o=`echo $o`; [[ ! "$o" =~ ^0?$ ]] && printf "$Fs" "$1" "$o"; }; R () { o=; [[ r -eq 0 ]]; }; SP () { system_profiler SP${1}DataType; }; id -G | grep -qw 80; a=$?; A && sudo true; r=$?; t=`date +%s`; clear; { A || echo $'No admin access\n'; A && ! R && echo $'No root access\n'; SP Software | sed '8!d;s/^ *//'; o=`SP Hardware | awk '/Mem/{print $2}'`; o=$((o<4?o:0)); Ps "Total RAM (GB)"; o=`SP Memory | sed '1,5d;/[my].*:/d'`; [[ "$o" =~ s:\ [^O]|x([^08]||0[^2]8[^0]) ]] && printf "$Fr" "$o"; o=`SP Diagnostics | sed '5,6!d'`; [[ "$o" =~ Pass ]] || Pm "POST"; p=`SP Power`; o=`awk '/Cy/{print $NF}' <<< "$p"`; o=$((o>=300?o:0)); Ps "Battery cycles"; o=`sed -n '/Cond.*: [^N]/{s/^.*://p;}' <<< "$p"`; Ps "Battery condition"; for b in Thunderbolt USB; do o=`SP $b | sed -En '1d;/:$/{s/ *:$//;x;s/\n//p;};/^ *V.* [0N].* /{s/ 0x.... //;s/[()]//g;s/(.*: )(.*)/ \(\2\)/;H;};/Apple|Genesy|SMSC/{s/.//g;h;}'`; Pm $b; done; o=`pmset -g therm | sed 's/^.*C/C/'`; [[ "$o" =~ No\ th|pms ]] && o=; Pm "Thermal conditions"; o=`pmset -g sysload | grep -v :`; [[ "$o" =~ =\ [^GO] ]] || o=; Pm "System load advisory"; o=`nvram boot-args | awk '{$1=""; print}'`; Ps "boot-args"; a=(/ ""); A=(System User); for i in 0 1; do o=`cd ${a[$i]}L*/Lo*/Diag* || continue; for f in *.{cr,h,pa,s}*; do [[ -f "$f" ]] || continue; d=$(awk '/^D/{print $2; exit}' "$f"); [[ "$f" =~ h$ ]] && grep -lq "^Thread c" "$f" && e=\* || e=; echo $d ${f%_$d*} ${f##*.} "$e"; done | sort | tail`; Pm "${A[$i]} diagnostics"; done; [[ "$o" =~ \*$ ]] && printf $'\n* Code injection\n'; o=`syslog -F bsd -k Sender kernel -k Message CReq 'GPU |hfs: Ru|I/O e|last value [1-9]|n Cause: -|NVDA\(|pagin|SATA W|ssert|Thrott|timed? ?o' | tail -n25 | awk '/:/{$4=""; $5=""};1'`; Pm "Kernel messages"; o=`df -m / | awk 'NR==2 {print $4}'`; o=$((o<5120?o:0)); Ps "Free space (MiB)"; o=$(($(vm_stat | awk '/eo/{sub("\\.",""); print $2}')/256)); o=$((o>=1024?o:0)); Ps "Pageouts (MiB)"; s=( `sar -u 1 10 | sed '$!d'` ); [[ s[4] -lt 85 ]] && o=`printf "$Fu" ${s[1]} ${s[3]}` || o=; Ps "Total CPU usage" && { s=(`ps acrx -o comm,ruid,%cpu | sed '2!d'`); n=$((${#s[*]}-1)); c="${s[*]}"; o=${s[$n]}%; Ps "CPU usage by process \"${c% ${s[$((n-1))]}*}\" with UID ${s[$((n-1))]}"; }; s=(`top -R -l1 -n1 -o prt -stats command,uid,prt | sed '$!d'`); n=$((${#s[*]}-1)); s[$n]=${s[$n]%[+-]}; c="${s[*]}"; o=$((s[$n]>=25000?s[$n]:0)); Ps "Mach ports used by process \"${c% ${s[$((n-1))]}*}\" with UID ${s[$((n-1))]}"; o=`kextstat -kl | grep -v com\\.apple | cut -c53- | cut -d\< -f1`; Pm "Loaded extrinsic kernel extensions"; R && o=`sudo launchctl list | awk 'NR>1 && !/0x|com\.(apple|openssh|vix\.cron)|org\.(amav|apac|calendarse|cups|dove|isc|ntp|post[fg]|x)/{print $3}'`; Pm "Extrinsic daemons"; o=`launchctl list | awk 'NR>1 && !/0x|com\.apple|org\.(x|openbsd)|\.[0-9]+$/{print $3}'`; Pm "Extrinsic agents"; o=`for d in {/,}L*/Lau*; do M; done | grep -v com\.apple\.CSConfig | while read f; do ID=$($PB\ :Label "$f") || ID="No job label"; printf "$Fb" "$f" "$ID"; done`; Pm "launchd items"; o=`for d in /{S*/,}L*/Star*; do M; done`; Pm "Startup items"; o=`find -L /S*/L*/{C*/Sec*A,E}* {/,}L*/{A*d,Compon,Ex,In,iTu,Keyb,Mail/B,P*P,Qu*T,Scripti,Sec,Servi,Spo}* -type d -name Contents -prune | while read d; do ID=$($PB\ :CFBundleIdentifier "$d/Info.plist") || ID="No bundle ID"; [[ "$ID" =~ ^com\.apple\.[^x]|Accusys|ArcMSR|ATTO|HDPro|HighPoint|driver\.stex|hp-fax|\.hpio|JMicron|microsoft\.MDI|print|SoftRAID ]] || printf "$Fb" "${d%/Contents}" "$ID"; done`; Pm "Extrinsic loadable bundles"; o=`find -L /u*/{,*/}lib -type f | while read f; do file -b "$f" | grep -qw shared && ! codesign -v "$f" && echo $f; done`; Pm "Unsigned shared libraries"; o=`for e in INSERT_LIBRARIES LIBRARY_PATH; do launchctl getenv DYLD_$e; done`; Pm "Environment"; o=`find -L {,/u*/lo*}/e*/periodic -type f -mtime -10d`; Pm "Modified periodic scripts"; o=`scutil --proxy | grep Prox`; Pm "Proxies"; o=`scutil --dns | awk '/r\[0\] /{if ($NF !~ /^1(0|72\.(1[6-9]|2[0-9]|3[0-1])|92\.168)\./) print $NF; exit}'`; Ps "DNS"; R && o=`sudo profiles -P | grep : | wc -l`; Ps "Profiles"; f=auto_master; [[ `md5 -q /etc/$f` =~ ^b166 ]] || Pc $f /etc/$f; for f in fstab sysctl.conf crontab launchd.conf; do Pc $f /etc/$f; done; Pc "hosts" <(grep -v 'host *$' /etc/hosts); Pc "User launchd" ~/.launchd*; R && Pc "Root crontab" <(sudo crontab -l); Pc "User crontab" <(crontab -l | sed -E 's:/Users/[^/]+/:/Users/USER/:g'); R && o=`sudo defaults read com.apple.loginwindow LoginHook`; Pm "Login hook"; Pp "Global login items" /L*/P*/loginw* Path; Pp "User login items" L*/P*/*loginit* Name; Pp "Safari extensions" L*/Saf*/*/E*.plist Bundle | sed -E 's/(\..*$|-[1-9])//g'; o=`find ~ $TMPDIR.. \( -flags +sappnd,schg,uappnd,uchg -o ! -user $UID -o ! -perm -600 \) | wc -l`; Ps "Restricted user files"; cd; o=`SP Fonts | egrep "Valid: N|Duplicate: Y" | wc -l`; Ps "Font problems"; o=`find L*/{Con,Pref}* -type f ! -size 0 -name *.plist | while read f; do plutil -s "$f" >&- || echo $f; done`; Pm "Bad plists"; d=(Desktop L*/Keyc*); n=(20 7); for i in 0 1; do o=`find "${d[$i]}" -type f -maxdepth 1 | wc -l`; o=$((o<=n[$i]?0:o)); Ps "${d[$i]##*/} file count"; done; o=; [[ UID -eq 0 ]] && o=root; Ps "UID"; o=$((`date +%s`-t)); Ps "Elapsed time (s)"; } 2>/dev/null | pbcopy; exit 2>&-
    Copy the selected text to the Clipboard by pressing the key combination command-C.
    7. Launch the built-in Terminal application in any of the following ways:
    ☞ Enter the first few letters of its name into a Spotlight search. Select it in the results (it should be at the top.)
    ☞ In the Finder, select Go ▹ Utilities from the menu bar, or press the key combination shift-command-U. The application is in the folder that opens.
    ☞ Open LaunchPad. Click Utilities, then Terminal in the icon grid.
    Click anywhere in the Terminal window and paste (command-V). The text you pasted should vanish immediately. If it doesn't, press the return key.
    8. If you see an error message in the Terminal window such as "syntax error," enter
    exec bash
    and press return. Then paste the script again.
    9. If you're logged in as an administrator, you'll be prompted for your login password. Nothing will be displayed when you type it. You will not see the usual dots in place of typed characters. Make sure caps lock is off. Type carefully and then press return. You may get a one-time warning to be careful. If you make three failed attempts to enter the password, the test will run anyway, but it will produce less information. In most cases, the difference is not important. If you don't know the password, or if you prefer not to enter it, just press return three times at the password prompt.
    If you're not logged in as an administrator, you won't be prompted for a password. The test will still run. It just won't do anything that requires administrator privileges.
    10. The test will take a few minutes to run, depending on how many files you have and the speed of the computer. A computer that's abnormally slow may take longer to run the test. While it's running, there will be nothing in the Terminal window and no indication of progress. Wait for the line "[Process completed]" to appear. If you don't see it within half an hour or so, the test probably won't complete in a reasonable time. In that case, close the Terminal window and report the results. No harm will be done.
    11. When the test is complete, quit Terminal. The results will have been copied to the Clipboard automatically. They are not shown in the Terminal window. Please don't copy anything from there. All you have to do is start a reply to this comment and then paste by pressing command-V again.
    If any private information, such as your name or email address, appears in the results, anonymize it before posting. Usually that won't be necessary.
    12. When you post the results, you might see the message, "You have included content in your post that is not permitted." It means that the forum software has misidentified something in the post as a violation of the rules. If that happens, please post the test results on Pastebin, then post a link here to the page you created.
    Note: This is a public forum, and others may give you advice based on the results of the test. They speak only for themselves, and I don't necessarily agree with them.
    Copyright © 2014 Linc Davis. As the sole author of this work, I reserve all rights to it except as provided in the Terms of Use of Apple Support Communities ("ASC"). Readers of ASC may copy it for their own personal use. Neither the whole nor any part may be redistributed.

  • How to I get high res thumbnail images?

    Just discovered once I've imported images into my library Aperture 3.2.2 (running under 10.7.3) doesn't render high res thumbnail images (when the Browser Thumbnail Resize slider is set to the far right/maximum), even though my "Previews" preference settings are as follows:
    "Use embedded JPEG from camera when possible" is unchecked
    "Don't Limit" for Photo Preview is selected
    Photo Preview quality set to 10
    Deleting and regenerating thumbnails doesn't solve the issue. However, if I delete the photo from the referenced library, then reimport the image, the browser thumbnail image renders sharp. The low res thumbnail is at left; high res thumbnail (after re-import) is at right. Both thumbnails images are sharp when the Browser Thumbnail Resize slider is positioned in the middle. Photos render sharp in the Viewer, regardless.
    Going back through my images, it seems Aperture stopped providing a sharp thumbnail image since around July 2010. Other than updating Aperture, my workflow or supported camera hasn't changed. Couldn't find a reference to this issue in the User Manual. Am I missing something a setting somewhere?
    Thanks,
    Eric

    Its unclear if the command Generate Thumbnails actually does anything if the thumbs already exist and as there isn;t a Delete Thumbnails command like there is a Delete preview command there are only two ways to force a new thumb to be generated.
    One is to import the image again and two is to delete the Thumbnail folder in the Aperture library. I don;t know for sure if this will fix you problem but as I said it is the only way to force the generation of the thumbs.
    If you try this make sure you have a good working backup of the library. Nothing here will normally cause data loss but it is always a good idea before messing with the library.
    Quit Aperture, Highlight the library in the Finder and right click, Select show package contents. One fo the folders you'll see is Thumbnails, delete it. Open Aperture.
    Also be aware that the regeneration of the thumbs will take some time. Depending on the size of the library it could be an all day affair. Aperture is usable while this is going on but it will be slower.

  • Automatic creation of thumbnail image in BC4J App

    I have created a BC4J application using the default wizards that displays the content of the following table:
    CREATE TABLE EMPLOYEE_PHOTO (
    ID NUMBER (3) NOT NULL,
    DESCRIPTION VARCHAR2 (20),
    PIC ORDIMAGE,
    THUMB ORDIMAGE,
    EMPLOYEE_NAME VARCHAR2 (50))
    The 'browse' jsp displays the id, description and thumb image.
    The 'edit' jsp allows the user to enter the description, employee_name and upload file details for the pic image.
    I have 2 problems with the application.
    1. How do I set the 'browse' jsp to display the thumb image as an anchor tag that points to the 'edit' jsp ?. I would also like to dynamically set the hint text for the thumb image to 'employee_name' from the database table.
    2. In the 'edit' jsp I want to invoke the Intermedia processCopy method to automatically create the thumbnail image from the image file specified by the user. How do I accommodate this method into the default code ?
    Thanks in advance
    Chris

    Chris,
    Basically, you have to use the "manual" mode of the rendering instead of the "automatic" mode. The JDev Wizard
    generated JSP page uses the "automatic" mode which is hard to customize. The characteristic of the "automatic"
    mode is using the <AttributeIterate> tag to iterate through all attributes. You have to change the following JSP files
    to achieve what you wanted.
    1. DataTableComponent.jsp
    <%@ page language="java" import = "oracle.jbo.html.*, oracle.jbo.*" %>
    <%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
    <%
    RequestParameters params = HtmlServices.getRequestParameters(pageContext);
    String editTargetParam = params.getParameter("edittarget");
    if ("null".equalsIgnoreCase(editTargetParam))
    editTargetParam = null;
    %>
    <jbo:DataSourceRef id="dsBrowse" reference='<%=params.getParameter("datasource")%>' />
    <table class="clsTable" cellspacing="1" cellpadding="3">
    <tr class="clsTableRow"><%
    if (editTargetParam != null)
    %>
    <th class="clsTableHeader"> </th>
    <th class="clsTableHeader"><a href="<jbo:UrlEvent targeturlparam='edittarget' event='Create' datasource='dsBrowse' extraparameters='<%=originURL=" + params.getParameter("originURL")%">'/>">New</a></th><%
    %>
    <th title="<jbo:ShowHint datasource="dsBrowse" hintname='TOOLTIP' dataitem="Id"/>" class="vrTableHeader"><jbo:ShowHint datasource="dsBrowse" hintname="LABEL" dataitem="Id">##Column</jbo:ShowHint></th>
    <th title="<jbo:ShowHint datasource="dsBrowse" hintname='TOOLTIP' dataitem="Description"/>" class="vrTableHeader"><jbo:ShowHint datasource="dsBrowse" hintname="LABEL" dataitem="Description">##Column</jbo:ShowHint></th>
    <th title="<jbo:ShowHint datasource="dsBrowse" hintname='TOOLTIP' dataitem="Thumb"/>" class="vrTableHeader"><jbo:ShowHint datasource="dsBrowse" hintname="LABEL" dataitem="Thumb">##Column</jbo:ShowHint></th>
    </tr><%
    Row currentRow = dsBrowse.getRowSet().getCurrentRow();
    %>
    <jbo:RowsetIterate datasource="dsBrowse" changecurrentrow="false" userange="true">
    <jbo:Row id="aRow" datasource="dsBrowse" action="Active"/><%
    String rowStyle;
    if (aRow == currentRow)
    rowStyle = "clsCurrentTableRow";
    else
    rowStyle = "clsTableRow";
    %>
    <tr class="<%=rowStyle%>"><%
    if (editTargetParam != null)
    %>
    <td class="tablecell"><a href="<jbo:UrlEvent targeturlparam='originURL' event='Delete' datasource='dsBrowse' addrowkey='true'/>">Delete</a>
    </td>
    <td class="tablecell"><a href="<jbo:UrlEvent targeturlparam='edittarget' event='Edit' datasource='dsBrowse' addrowkey='true' extraparameters='<%="originURL=" + params.getParameter("originURL")%>'/>">Edit</a>
    </td><%
    %>
    <td title="<jbo:ShowHint hintname='TOOLTIP' dataitem="Id"/>" class="tablecell" >
    <jbo:RenderValue datasource="dsBrowse" dataitem="Id">##Cell</jbo:RenderValue>
    </td>
    <td title="<jbo:ShowHint hintname='TOOLTIP' dataitem="Description"/>" class="tablecell" >
    <jbo:RenderValue datasource="dsBrowse" dataitem="Description">##Cell</jbo:RenderValue>
    </td>
    <td title="<jbo:ShowHint hintname='TOOLTIP' dataitem="Thumb"/>" class="tablecell" >
    <A href="<jbo:UrlEvent targeturlparam='edittarget' event='Edit' datasource='dsBrowse' addrowkey='true' extraparameters='<%="originURL=" + params.getParameter("originURL")%>'/>">
    <jbo:EmbedImage datasource="dsBrowse" mediaattr="Thumb" altattr="EmployeeName" />
    </A>
    </td>
    </tr>
    </jbo:RowsetIterate>
    </table>
    2. DataEditComponent.jsp
    <%@ page language="java" import = "oracle.jbo.html.*" %>
    <%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
    <%
    RequestParameters params = HtmlServices.getRequestParameters(pageContext);
    String dsParam = params.getParameter("datasource");
    String formName = dsParam + "_form";
    String rowAction = "Current";
    %>
    <jbo:DataSourceRef id="dsEdit" reference="<%=dsParam%>" />
    <jbo:OnEvent name="edit" datasource="dsEdit">
    <% rowAction = "Get"; %>
    </jbo:OnEvent>
    <jbo:OnEvent name="create" datasource="dsEdit">
    <% rowAction = "Create"; %>
    </jbo:OnEvent>
    <form name="<%=formName%>" action="<%=params.getParameter("targetURL")%>" method="post" enctype="multipart/form-data">
    <jbo:Row id="rowEdit" datasource="dsEdit" rowkeyparam="jboRowKey" action="<%=rowAction%>">
    <table border="0">
    <tr>
    <td title="<jbo:ShowHint hintname='TOOLTIP' dataitem="Id"/>" align="right">
    <b>
    <jbo:ShowHint hintname="LABEL" dataitem="Id">##Column</jbo:ShowHint>
    </b>
    </td>
    <td title="<jbo:ShowHint hintname='TOOLTIP' dataitem="Id"/>">
    <jbo:InputRender datasource="dsEdit" dataitem="Id" formname="<%=formName%>" />
    </td>
    </tr>
    <tr>
    <td title="<jbo:ShowHint hintname='TOOLTIP' dataitem="Description"/>" align="right">
    <b>
    <jbo:ShowHint hintname="LABEL" dataitem="Description">##Column</jbo:ShowHint>
    </b>
    </td>
    <td title="<jbo:ShowHint hintname='TOOLTIP' dataitem="Description"/>">
    <jbo:InputRender datasource="dsEdit" dataitem="Description" formname="<%=formName%>" />
    </td>
    </tr>
    <tr>
    <td title="<jbo:ShowHint hintname='TOOLTIP' dataitem="Pic"/>" align="right">
    <b>
    <jbo:ShowHint hintname="LABEL" dataitem="Pic">##Column</jbo:ShowHint>
    </b>
    </td>
    <td title="<jbo:ShowHint hintname='TOOLTIP' dataitem="Pic"/>">
    <jbo:InputRender datasource="dsEdit" dataitem="Pic" formname="<%=formName%>" />
    </td>
    </tr>
    <tr>
    <td title="<jbo:ShowHint hintname='TOOLTIP' dataitem="EmployeeName"/>" align="right">
    <b>
    <jbo:ShowHint hintname="LABEL" dataitem="EmployeeName">##Column</jbo:ShowHint>
    </b>
    </td>
    <td title="<jbo:ShowHint hintname='TOOLTIP' dataitem="EmployeeName"/>">
    <jbo:InputRender datasource="dsEdit" dataitem="EmployeeName" formname="<%=formName%>" />
    </td>
    </tr>
    </table>
    <jbo:FormEvent event="update" datasource="dsEdit" addrowkey="true" />
    </jbo:Row>
    <%-- Pass along originURL parameter --%>
    <input type="hidden" name="originURL" value="<%=params.getParameter("originURL")%>">
    <input type="submit" value="Update">
    <input type="reset" value="Reset">
    </form>
    3. DataHandlerComponent.jsp
    <%@ page language="java" %>
    <%@ page errorPage="errorpage.jsp" %>
    <%@ page import="oracle.jbo.ApplicationModule" %>
    <%@ page import="oracle.jbo.html.*" %>
    <%@ page import="oracle.ord.im.*" %>
    <%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
    <%
    RequestParameters params = HtmlServices.getRequestParameters(pageContext);
    String targetParam = params.getParameter("targetURL");
    String amId = params.getParameter("amId");
    String voName = params.getParameter("jboEventVo");
    %>
    <%
    if (voName != null)
    { %>
    <jbo:DataSource id="ds" appid="<%=amId%>" viewobject="<%=voName%>" />
    <jbo:OnEvent name="update">
    <jbo:Row id="myrow" datasource="ds" rowkeyparam="jboRowKey" action="Update" />
    <%
    myrow.setAttribute("Thumb", new OrdImageDomain());
    String myRowKey = myrow.getKey().toStringFormat(false);
    %>
    <jbo:PostChanges appid="<%=amId%>" />
    <jbo:Row id="theRow" datasource="ds" action="Find" rowkeyparam="jboRowKey" >
    <%
    OrdImageDomain pic = (OrdImageDomain) theRow.getAttribute("Pic");
    OrdImageDomain thumb = (OrdImageDomain) theRow.getAttribute("Thumb");
    pic.processCopy("scale=\"0.1\"", thumb);
    %>
    </jbo:Row>
    </jbo:OnEvent>
    <jbo:OnEvent name="delete">
    <jbo:Row id="delrow" datasource="ds" rowkeyparam="jboRowKey" action="Delete" />
    </jbo:OnEvent>
    <%-- Scroll event handling --%>
    <jbo:OnEvent list="firstset, nextset, previousset, lastset">
    <jbo:RowsetNavigate datasource="ds" />
    </jbo:OnEvent>
    <%-- Navigation event handling --%>
    <jbo:OnEvent list="first, next, previous, last">
    <jbo:RowsetNavigate datasource="ds" />
    </jbo:OnEvent>
    <%-- Query event handling --%>
    <jbo:OnEvent name="Del Criteria" >
    <% String remove = params.getParameter("index"); %>
    <jbo:ViewCriteria id="vc" datasource="ds" action="append">
    <jbo:CriteriaRow id="row<%=remove%>" index="<%=remove%>" clearall="true" />
    </jbo:ViewCriteria>
    </jbo:OnEvent>
    <jbo:OnEvent name="Clear All" >
    <jbo:ViewCriteria id="vc" datasource="ds" action="new" />
    </jbo:OnEvent>
    <jbo:OnEvent list="Search, Add Criteria" >
    <% String rowParam = params.getParameter("nRows");
    int nRows = 0;
    if (rowParam != null)
    try { nRows = Integer.parseInt(rowParam); }
    catch (Exception ex) { }
    %>
    <jbo:ViewCriteria id="vc" datasource="ds" action="new">
    <% for (int index=0; index < nRows; index++)
    { %>
    <jbo:CriteriaRow id="row<%=index%>" >
    <jbo:AttributeIterate id="attrvc" datasource="ds" queriableonly="true">
    <% String item = attrvc.getName();
    String value = params.getParameter("row" + index + "_" + item); %>
    <jbo:Criteria dataitem="<%=item%>" value="<%=value%>" />
    </jbo:AttributeIterate>
    </jbo:CriteriaRow>
    <% } %>
    </jbo:ViewCriteria>
    </jbo:OnEvent>
    <% }%>
    <%-- Transaction event handling --%>
    <jbo:OnEvent name="Commit" >
    <jbo:Commit appid="<%=amId%>"/>
    </jbo:OnEvent>
    <jbo:OnEvent name="Rollback" >
    <jbo:RollBack appid="<%=amId%>"/>
    </jbo:OnEvent>
    Hope this helps.
    richard
    </a>

  • Thumbnail images not showing up in my Spry slideshow

    Hello - Everything seems to be working in my Spry slideshow. However, my thumbnail images are not showing up in Live view or browser. The images are all in the correct folder. Here is what the script looks like:
    <ul id="ImageSlideShow" title="Our Products">
            <li><a href="images/ss_penny.jpg" title="All Things Pennies"><img src="images/ss_penny_thumb.jpg" alt="" /></a></li>
            <li><a href="images/ss_rides.jpg" title="Children's Kiosks"><img src="images/ss_rides_thumb.jpg" alt="" /></a></li>
            <li><a href="images/ss_ireality.jpg" title="Simulators"><img src="images/ss_ireality_thumb.jpg" alt="" /></a></li>
            <li><a href="images/ss_carousels.jpg" title="Carousels"><img src="images/ss_carousels_thumb.jpg" alt="" /></a></li>
            <li><a href="images/ss_candy.jpg" title="Candy Kiosks"><img src="images/ss_candy_thumb.jpg" alt="" /></a></li>
         </ul>
          <script type="text/javascript">
    Is there something I'm missing?
    Thank you

    There is nothing wrong with the markup that you have shown, hence the problem will be located somwhere else.
    Gramps

  • Thumbnail images for MP4 files vanished again - how can they be restored?

    My thumbnail images for MP4 files have vanished again and could you tell me how to resttore them please? I am running Windows 8.1 and IE11 Browser and use the Real Player to play these files. When I run a flash test it says one minute it is not installed in the browser and the next test confirms that it is installed. Is this a known problem with Windows and can it be fixed by adjusting a setting somewhere. Thanks for your help.

    Enable Compatibility View for IE: http://windows.microsoft.com/en-us/internet-explorer/use-compatibility-view#ie=ie-11 and the plugin will be recognized.

  • Showing various images on browser using JSP and Servlet

    Hello Guys!
    I am starting to develop in Java and already I am facing a big problem.
    If somebody will have some tip or suggestion, will be very well comings!
    The application must present in browser images originnally of format TIF. As it is not a native format of the I.E. , I converted the image for JPG (without saving it on disk) and send it to the browser a encoded image (encode) using JAI library in one servlet had access by a JSP. Then, the structure of my application is thus:
    1) an archive JSP draws the initial screen in browser and presents one input text.
    2) later that the user places the parameter, I make an access to the database and read a quantity of images to be presented.
    3) From there in the proper JSP, I use de tag img src to send image to the browser in agreement archive the amount of images.
    It follows the code of the JSP:
    <% 
                    int intI=0;
                    int intCont=0;
                    if(blnImagem == true){
                        out.println("<br>");
                        out.println("<table border=0 STYLE=border-collapse:collapse>");
                        out.println("<tr>");
                        for(intI=0;intI < Processo.intQtdImagens;intI++){
                           Imagem.strImgTif = Imagem.IndicarImagem(Processo.strNmPath,Processo.strSubPath,Processo.intNuImagem,intI);                                                                    
                           out.println("<th>");
                           out.println("<table border=1 STYLE=border-collapse:collapse rules='cols'>");
                           out.println("<tr>");
                           out.println("<th>");
                           %>
                             <img src="ShowImg" WIDTH=100>
                           <%
                           out.println("</th>");
                           out.println("</tr>");
                           out.println("</table>");
    %>and code on the ShowImg servlet:
            response.setContentType("image/jpeg");       
            ServletOutputStream sos = response.getOutputStream();
            RenderedOp src = JAI.create("fileload", Imagem.strImgTif);           
            ImageEncoder encoder = ImageCodec.createImageEncoder("JPEG",sos,null);       
            encoder.encode(src); 
            sos.close();The problem is if I have 10 images to present, it WILL BE it is executed 10 times and it passes 10 names of different archives, but in the page only the last image is presented 10 times. It is as if it processed the TAG to the end of everything in way that the value of the static variable Imagem.strImgTif was chore only with the last value and the same loaded image 10 times. How I make to solve this? Somebody has some idea?
    THANK YOU !
    Emidio

    If I understand correctly what your problem is:
    Do this in the jsp:
    out.println("<img src=\"ShowImg?image=" + intI + "\" WIDTH=100>");
    In the image servlet, get the "image" parameter and parse it as an int. Move the Imagem.IndicarImagem() call to the image servlet.

  • XML scrolling thumbnail, image loader, & Buttons [halfway works]

    Intro:
    I started a flash-based website a few years ago. Back in 2006 I was able to get a xml scrolling thumbnail, image loader to work without a glitch.
    For numerous reasons I had to put the project on hold until now. [one was that my 30 day trial of flash expired and only recently was I able to purchase the Adobe Web Suite CS4 as well as a new computer which could run the apps.]
    Last Friday saw a bump in the road in the development of my site as two, rather straightforward task, turned into something short of a nightmare as I have been unable to get past these two, seemingly, relatively simple task.
    I have posted in 4 other flash forums the issues, in detail, that I am facing - and have quite a bit of interest/views in the topic as the numbers suggest - yet no response/answer as of yet. [Which confirms other messages I have seen which seem to state that working with buttons has become increasingly difficult with the newer version of flash - something Im a bit surprised with actually from Adobe. - I would have thought there would be a palette where you could set parameters...]
    Screenshot of Site/Timeline:
    Before getting into the two questions I have, I would like to post an image of the site as it looks whenever an swf file is saved out, as well as a piece of the timeline in the back for reference.
    Issue #1
    As of now when the swf file is saved out you get exactly what you see above:
    a: A scrolling thumbnail
    b: ...which loads a large image when clicked on it - PEFECT...
    BUT...
    1a: I need for the buttons to load in this action, not for it to just load on its own.
    [i.e., the silk_paintings gallery is what is open, so I need the "silk_paintings" button to call up this action]
    note: Initially I had attacked this problem by taking out the actions layer you see above and applying it directly to the individual buttons with some crude MouseEvent Listener/Handerls... that did not work - at all.
    Im sure it may be "easier" to make an array out of it, but with my coding level it may be "easier" to apply it to the buttons.
    1b: How I currently see it, I would take the xml-list and duplicate it for the number of galleries I have.
    [I would then re-name the xml-list to reflect the name of the galleries they are to represent, i.e. "silk_paintings"]
    [also, I would have to rename the folders to "thumbnails1,2,3, etc., & "images 1,2,3, etc"
    From there I would duplicate the actions and paste it into the buttons, changing the xml-list name to that of "silk_paintings", etc., as well as write in the MouseEvent listener Handler to make it work. [ah, ha, but what is that magic phrase, I have tried to implement various code from other tutorials, and all in vein.]
    Issue #2
    At this point I would be tickled pink just to get this to basic function to work.
    However, once the buttons are working and calling up the xml, etc., then I need the buttons to stay on the semi-transparent blue color it is whenever in the 'hit' state. [note: NOT pictured above.]
    With the way the buttons are currently set up, and with wanting to use scripting to get them to interact with the thumbnail gallery, it will have to be some miraculous code to tell that button what color to stay as whenever its clicked, and of course it going back to white when another button is clicked.
    Conclusion:
    Since this is an Adobe Forum I would like to make a few additional statements in hopes that the developers, etc. may take heed.
    Adobes products are not cheap, and when I went to purchase the websuite I went in as a designer needing a program as not to need to program.
    I understand the flexibility that coding gives, but something as simple as linking buttons should not be in the realms of rocket science. [yes, for many its not...but my brain just does not operate that route despite all the tutorials thrown at me.]
    Again, it would seem that there would be a button panel where you could drag options like scrolling thumbnail slider, loader, and then parameters would come up. [much like Apples iWeb. - but before the argument of one being pro and the other for non-pros, I see it differently. Software should not be the limiting factor in how flexible you can design, or rather ones lack of programming shouldnt be. With all the talented, and I say this in all humility and honesty, programmers working for Adobe, Im sure something could be programmed like what Im asking for.]
    note: Director is a good example, back in 1997 I knew nothing of multimedia and in one week I had assembled a portfolio, clicking buttons, speech, movies, and all. - and no, I dont have the money to buy more software!
    At this moment I am at the mercy of someone who reads code like its a nighttime tale they are telling their kids, and who can see the exact issue I have and can share the appropriate, correct code. [as I have noticed, it has to be on target - naturally - but this target changes with just a slight change in the design.]
    Thank you,
    peace
    Dalen
    p.s.
    The actionscript: [note: This is only the current working/good code that Im trying to get the buttons to call up.]
    stop();
    fscommand("allowscale", false);//keep SWF display at 100%
    var x:XML = new XML ();//Define XML Object
    x.ignoreWhite = true;
    var fullURL:Array = new Array;//Array of full size image urls
    var thumbURL:Array = new Array;//Array of thumbnail urls
    var thumbX:Number = 25;//Initial offset of _x for first thumbnail
    x.onLoad = function(){ //Function runs after XML is loaded
        var photos:Array = this.firstChild.childNodes;//Defines variable for length of XML file
         for (i=0;i<photos.length;i++) {//For loop to step through all entry lines of XML file
              fullURL.push(photos[i].attributes.urls);//Each loop, adds URL for full sized image to Array fullURL
              thumbURL.push(photos[i].attributes.thumbs);//Each loop, adds URL for thumbnails to Array thumbURL
              trace(i+". Full Image = "+fullURL[i]+"  Thumb Image = "+thumbURL[i]);         
              var t = panel.attachMovie("b","b"+i,i);//Each loop, Define local variable 't' as a new instance of 'b' movie clip, given unique instance name of 'b' plus the index number of the For loop
              t.img.loadMovie(thumbURL[i]);// Each loop, load thumbnail image from XML data into variable movie clip
              t._y = 0;//Set Y coordinate of variable movie clip
              t._x = thumbX;//Set X coordinate of variable movie clip based on variable thumbX
              t.numb = i;//Set sub-variable 'numb' inside variable t to hold index number
              t._alpha = 75;//Set the Alpha value of the variable movie clip to 75% - for onRollOver highlight action
              thumbX += 55;//Increment thumbX value so next thumbnail is placed 125 pixels to the right of the one before
              t.onRollOver = function () {//define onRollOver event of the variable movie clip
                   this._alpha = 100;//Set thumbnail alpha to 100% for highlight
              t.onRollOut = function () {//define onRollOut event of the variable movie clip
                   this._alpha = 75;//Reset thumbnail alpha to 75%
              t.onPress = function () {//define onPress event of the variable movie clip
                   this._rotation += 3;//rotates thumbnail 3 degrees to indicate it's been pressed
                   this._x += 3;//Offset X coordinate by 3 pixels to keep clip centered during rotation
                   this._y -= 3;//Offset Y coordinate by 3 pixels to keep clip centered during rotation
              t.onReleaseOutside = function () {//define onRelease event of the variable movie clip
                   this._rotation -= 3;//rotate thumbnail back 3 degrees
                   this._x -= 3;//Reset X coordinate by 3 pixels to keep clip centered during rotation
                   this._y += 3;//Reset Y coordinate by 3 pixels to keep clip centered during rotation
                   this._alpha = 75;//Reset thumbnail alpha to 75%
              t.onRelease  = function () {//define onRelease function to load full sized image
                   this._rotation -= 3;//rotate thumbnail back 3 degrees
                   this._x -= 3;//Reset X coordinate by 3 pixels to keep clip centered during
                   this._y += 3;//Reset Y coordinate by 3 pixels to keep clip centered during
                   this._alpha = 75;//Reset thumbnail alpha to 75%
                   holder.loadMovie(fullURL[this.numb]);//Load full sized image into holder clip based on sub-variable t.numb, referenced by 'this'
         holder.loadMovie(fullURL[0]);//Initially load first full size image into holder clip
    x.load ("silk_paintings.xml");// path to XML file
    panel.onRollOver = panelOver;
    function panelOver() {
         this.onEnterFrame = scrollPanel;
         delete this.onRollOver;
    var b = stroke.getBounds(_root);
    function scrollPanel() {
         if (_xmouse<b.xMin||_xmouse>b.xMax||_ymouse<b.yMin||_ymouse>b.yMax) {
         this.onRollOver = panelOver;
         delete this.onEnterFrame;
         if (panel._x >= 740) {
         panel._x = 740;
    if(panel._x <= (thumbX-10))  {
              panel._x = (thumbX-10)
         var xdist = _xmouse - 830;
         panel._x += -xdist / 7;
    The xml:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <slideshow>
    <photo thumbs="thumbnails/i_brown_fairy.jpg"  urls="images/brown_fairy.jpg"  />
    <photo thumbs="thumbnails/i_blonde_fairy.jpg"  urls="images/blonde_fairy.jpg"  />
    <photo thumbs="thumbnails/i_flower_fairy.jpg"  urls="images/flower_fairy.jpg"  />
    <photo thumbs="thumbnails/i_red_fairy.jpg"  urls="images/red-fairy.jpg"  />
    </slideshow>
    Attached is a link to the file I made named "index".
    https://rcpt.yousendit.com/706233226/5e7b4fe0973dacf090b5cbae32c47398
    I would have liked to have included the following files but was limited due to "you-send-it" not uploading folders.  Files not included: [but functioning] : xml list - images [folder] - thumbnails [folder]
    Again, Thank you
    Dalen

    The issues with the buttons calling up the scrolling thumbnail panel have been resolved, as well as keeping the buttons in their hit state once clicked, thanks to Rob.
    Those that have been following this thread, or stumble upon it in their searches later, may appreciate to see the final solution to this particular issue.
    [Hopefully I will be able to update this thread with a url in the future to show the site in operation, which may help somebody with their project in the future if its set up similarly.]
    Alas, it would be nice if future versions of flash had a more direct, flexible, user friendly method for creating navigation.
    [We may see development beyond the flash ads which everyone seems to loathe... and more creativity with flash in terms of games, web interactivity, &  animation.
    Below are 2 sets of code:
    a] the first is located within the first frame of the first button, and has some extra variables in it that the additional buttons call upon...
    b] the second is the code applied to every other button.
    stop();
    fscommand("allowscale", false);//keep SWF display at 100%
    var x:XML = new XML();//Define XML Object
    x.ignoreWhite = true;
    var fullURL:Array = new Array();//Array of full size image urls
    var thumbURL:Array = new Array();//Array of thumbnail urls
    //  .......  CHANGE
    var thumbX:Number;// = 25;//Initial offset of _x for first thumbnail
    // make an array of all of the instance names of each button object...
    // only do this once
    var buttonsList:Array = new Array(shadesOfGrey, silkPaintings);
    shadesOfGrey.isLatched = false;
    // the rollover function... repeat for each button
    shadesOfGrey.onRollOver = shadesOfGrey.onDragOver=function ():Void {
         if (!this.isLatched) {
              this.gotoAndStop(2);
    // the rolloff function... repeat for each button
    shadesOfGrey.onRollOut = shadesOfGrey.onDragOut=shadesOfGrey.onReleaseOutside=function ():Void {
         if (!this.isLatched) {
              this.gotoAndStop(1);
    // the mouse press function... repeat for each button
    shadesOfGrey.onPress = function():Void  {
         resetAllButtons();
         this.isLatched = true;
         this.gotoAndStop(3);
    shadesOfGrey.onRelease = function():Void  {
         x.load("shadesOfGrey.xml");// path to XML file
         thumbX = 25;
    function resetAllButtons():Void {
         for (b in buttonsList) {
              buttonsList[b].isLatched = false;
              buttonsList[b].gotoAndStop(1);
    x.onLoad = function() {//Function runs after XML is loaded
         //  resets the position of the panel on each new load
         panel._x = 740;
         //  .......  CHANGE  removes the existing movieclips from the panel before any new load...
         for (c in panel) {
              if (typeof (panel[c]) == "movieclip") {
                   removeMovieClip(panel[c]);
         var photos:Array = this.firstChild.childNodes;//Defines variable for length of XML file
         for (i=0; i<photos.length; i++) {//For loop to step through all entry lines of XML file
              fullURL.push(photos[i].attributes.urls);//Each loop, adds URL for full sized image to Array fullURL
              thumbURL.push(photos[i].attributes.thumbs);//Each loop, adds URL for thumbnails to Array thumbURL
              //trace(i+". Full Image = "+fullURL[i]+"  Thumb Image = "+thumbURL[i]);
              var t = panel.attachMovie("b", "b"+i, i);//Each loop, Define local variable 't' as a new instance of 'b' movie clip, given unique instance name of 'b' plus the index number of the For loop
              t.img.loadMovie(thumbURL[i]);// Each loop, load thumbnail image from XML data into variable movie clip
              t._y = 0;//Set Y coordinate of variable movie clip
              t._x = thumbX;//Set X coordinate of variable movie clip based on variable thumbX
              t.numb = i;//Set sub-variable 'numb' inside variable t to hold index number
              t._alpha = 75;//Set the Alpha value of the variable movie clip to 75% - for onRollOver highlight action
              thumbX += 55;//Increment thumbX value so next thumbnail is placed 125 pixels to the right of the one before
              t.onRollOver = function() {//define onRollOver event of the variable movie clip
                   this._alpha = 100;//Set thumbnail alpha to 100% for highlight
              t.onRollOut = function() {//define onRollOut event of the variable movie clip
                   this._alpha = 75;//Reset thumbnail alpha to 75%
              t.onPress = function() {//define onPress event of the variable movie clip
                   this._rotation += 3;//rotates thumbnail 3 degrees to indicate it's been pressed
                   this._x += 3;//Offset X coordinate by 3 pixels to keep clip centered during rotation
                   this._y -= 3;//Offset Y coordinate by 3 pixels to keep clip centered during rotation
              t.onReleaseOutside = function() {//define onRelease event of the variable movie clip
                   this._rotation -= 3;//rotate thumbnail back 3 degrees
                   this._x -= 3;//Reset X coordinate by 3 pixels to keep clip centered during rotation
                   this._y += 3;//Reset Y coordinate by 3 pixels to keep clip centered during rotation
                   this._alpha = 75;//Reset thumbnail alpha to 75%
              t.onRelease = function() {//define onRelease function to load full sized image
                   this._rotation -= 3;//rotate thumbnail back 3 degrees
                   this._x -= 3;//Reset X coordinate by 3 pixels to keep clip centered during
                   this._y += 3;//Reset Y coordinate by 3 pixels to keep clip centered during
                   this._alpha = 75;//Reset thumbnail alpha to 75%
                   holder.loadMovie(fullURL[this.numb]);//Load full sized image into holder clip based on sub-variable t.numb, referenced by 'this'
         holder.loadMovie(fullURL[0]);//Initially load first full size image into holder clip
    // this one function scrolls the panel for all of the buttons, it gets the
    // size of the panel when the images are loaded by any given button...
    stroke.onEnterFrame = function() {
         if (this.hitTest(_xmouse, _ymouse, false)) {
              if (panel._x>=740) {
                   panel._x = 740;
              if (panel._x<=740-panel._width+mask._width) {
                   panel._x = 740-panel._width+mask._width;
              if ((panel._x<=740) && (panel._x>=740-panel._width+mask._width)) {
                   var xdist = _xmouse-830;
                   panel._x += -xdist/7;
    Of note is the change to how the movie clips are measured... this change in and of itself has really helped to make the thumbnail panels operation more efficient.
    Below is the script for each additional button: [Having issues with the forums not letting me post additional code, so I will put the remaining code in a reply below.]
    cont.

Maybe you are looking for