Creating square thumbnails from both landscape & portrait images

I make regular use of a Flash image gallery that requires me to provide small square 50 x 50px thumbnails whatever the shape of the original images. The only solution I have found so far is to first manually sort my original images into landscape and portrait folders and then run a different action on each folder to create the thumbnails.
Is there any way to design an action that would work equally well on both landscape and portrait images?
David

he will do a centered 1;1
David C Anderson wrote:
JJMack,
I am confused. You said that your CraftedActions package has a plug-in script you can use in Actions to do a 1:1 center crop and you said the name of the relevant action was AspectRatioSelection. I have loaded CraftedActions into Actions but cannot see anything called AspectRatioSelection. Please clarify.
There is no Action for cropping. There are 12 scripts in the package *.jsx they go into Photoshop's scripting Path. Like PSversion\presets\scripts\
On of the scripts has the name AspectRatioSelection.jsx it is a Plug-in script it does not crop it can set AspectRatioSelection and make AspectRatioPath they can be rectangular or ellipse. You can record a Cropping action using it.  Takes two steps.
Step 1 menu File>Automate>Aspect Ratio Selection...  in the dialog set it like this
Follow that step with Step 2 menu Image>Crop
That will do the largest 1:1 centered crop possible. You can follow that with a Image Size or Automate fit image and set width and height to 50PX
That would look like this note red checks I turned off the fit image step

Similar Messages

  • Creating an animation from a series of image, snow leopard Quicktime 7 fails

    Quicktime 7 allowed a user to be able to select a series of images and create an movie file with a time interval..
    The Quicktime 7 for Snow Leopard from the Snow Leopard Installer dvd does not allow you to select more than one image..
    How can I create a movie from a series of images jpgs.s...
    We do scientific work climate modeling and this was a great tool to create animations..
    Where did it go.. there is no ability to do this in Quicktime X..
    Does anyone know how to make this functionality work?

    Ok I got it...
    Just select the first frame and then you get a dialog box that sets the time interval...
    It AUTOMATICALLY selects all the rest of the images if they are sequentially numbered...
    doh..

  • What's the best way to create a panorama from a series of images?

    What's the best way to create a panorama from a series of images?

    This is PhotoMerge result
    This is WLPG
    This is a manual merge
    Before anyone comments on the poor image quality, I know. Its not my photography.
    The beach huts were in an arc which doesn't help.
    You can see that the photomerged image has not 'understood' the image and has bad destortion on the doors of some huts. The blend lines are also visible

  • How to export square thumbnails from Lightroom

    I`m using Lightroom to export selected photos to my website and i would like to know how to setup export dialog to make JPG thumbnails 120x120 pixels regardles of their size/orientation.

    I may be mistaken, but I don't believe you can. Most you can do is something like make a Virtual Copy Collection of the images, do a Square crop and then export.
    Don

  • Creating PDF files from Quark causes font/image issues. PLEASE HELP.

    After creating a PDF file using Adobe Acrobat Professional (using the file>Export to PDF option) from QuarkXPress version 7.3, my client sees and prints distorted letters with various fonts and they even sometimes see lines where they shouldn't be. I don't see these issues on my end, even when I print the documents. For example, I may have a headline of four words, the top of the words are shifted to one side, or sometimes even the top half of the letters are in a different color. Please help soon before I lose my clients... or my mind. Thanks.

    We don't use Quark anymore, but I seem to remember that the export to pdf does not use Acrobat Distiller. It is Quark's own pdf maker. If the customer does have Acrobat Professional, then get them to print to the Adobe PDF 'printer' and seeif they get the same problem. They may need to open the Distiller app to set which output settings are used.

  • Jpeg thumbnails from mov

    has anyone found a way to create jpg thumbnails from movie files..... Basically what Motion does in the library preview, but in an external way so I can save them as PDF's for reference.
    "quad" G5   Mac OS X (10.4.3)  

    You might try throwing them all in a QuickTime player, exporting to a thumbnail size, then taking that and saving an image sequence. Though I guess you'd lose file names then...
    I guess the best way to do it would be to set up an action in PhotoShop(something that resizes to a specified resolution), save it as a droplet, then select all your files and drag them to that droplet. I don't have specifics on the procedure, but if you google Photoshop action droplet I'm sure you'll find a tutorial online somewhere.
    Patrick

  • JMF Compiling video from a folder of images

    Hello,
    I am trying to create a video from a folder of images. I am using a modified version of the JPEGImagesToMovie.java code.
    The video is not compiling correctly and when I playback it is only showing a blurred image of the final frame.
    Any ideas?
    Cheers, Paul
    import java.util.*;
    import java.io.*;
    import java.awt.Dimension;
    import javax.media.*;
    import javax.media.control.*;
    import javax.media.protocol.*;
    import javax.media.protocol.DataSource;
    import javax.media.datasink.*;
    import javax.media.format.VideoFormat;
    public class VideoThread extends Thread implements ControllerListener, DataSinkListener {
       // Generate the output media locators.
         private MediaLocator oml;
       private int width;
       private int height;
       private int frameRate;
       private String folder;
       public VideoThread(int width, int height, int frameRate, String folder) {
          this.width = width;
          this.height = height;
          this.frameRate = frameRate;
          this.folder = folder;
       public void run() {
          if ((oml = createMediaLocator("images/" + folder + "/" + folder + ".mov")) == null) {
             System.err.println("Cannot build media locator from: " + "images/" + folder + "/" + folder + ".mov");
          ImageDataSource ids = new ImageDataSource(width, height, frameRate, folder);
            Processor p;
          try {
             p = Manager.createProcessor(ids);
          } catch (Exception e) {
             System.err.println("Cannot create a processor from the data source.");        
             return;
          p.addControllerListener(this);
          // Put the Processor into configured state so we can set
            // some processing options on the processor.
            p.configure();
          if (!waitForState(p, p.Configured)) {
             System.err.println("Failed to configure the processor.");
             return;
          // Set the output content descriptor to QuickTime.
          p.setContentDescriptor(new ContentDescriptor(FileTypeDescriptor.QUICKTIME));
            // Query for the processor for supported formats.
          // Then set it on the processor.
            TrackControl tcs[] = p.getTrackControls();
            Format f[] = tcs[0].getSupportedFormats();
          if (f == null || f.length <= 0) {
             System.err.println("The mux does not support the input format: " + tcs[0].getFormat());
             return;
          tcs[0].setFormat(f[0]);
          System.err.println("Setting the track format to: " + f[0]);
          // We are done with programming the processor.  Let's just
            // realize it.
            p.realize();
          if (!waitForState(p, p.Realized)) {
             System.err.println("Failed to realize the processor.");
             return;
          // Now, we'll need to create a DataSink.
            DataSink dsink;
          if ((dsink = createDataSink(p, oml)) == null) {
             System.err.println("Failed to create a DataSink for the given output MediaLocator: " + oml);        
             return;
          dsink.addDataSinkListener(this);
            fileDone = false;
          System.err.println("start processing...");
            // OK, we can now start the actual transcoding.
          try {
             p.start();
             dsink.start();
          catch (IOException e) {
             System.err.println("IO error during processing");
             return;
          // Wait for EndOfStream event.
            waitForFileDone();
          // Cleanup.
          try {
             dsink.close();
          } catch (Exception e) {}
          p.removeControllerListener(this);
          System.err.println("...done processing.");
          return;
        * Create the DataSink.
       DataSink createDataSink(Processor p, MediaLocator oml) {
       DataSource ds;
       if ((ds = p.getDataOutput()) == null) {
          System.err.println("Something is really wrong: the processor does not have an output DataSource");
          return null;
         DataSink dsink;
       try {
          System.err.println("- create DataSink for: " + oml);
          dsink = Manager.createDataSink(ds, oml);
          dsink.open();
       catch (Exception e) {
          System.err.println("Cannot create the DataSink: " + e);
          return null;
         return dsink;
       Object waitSync = new Object();
       boolean stateTransitionOK = true;
        * Block until the processor has transitioned to the given state.
        * Return false if the transition failed.
       boolean waitForState(Processor p, int state) {
       synchronized (waitSync) {
          try {
             while (p.getState() < state && stateTransitionOK)
                waitSync.wait();
          catch (Exception e) {}
         return stateTransitionOK;
        * Controller Listener.
       public void controllerUpdate(ControllerEvent evt) {
         if (evt instanceof ConfigureCompleteEvent ||
          evt instanceof RealizeCompleteEvent ||
          evt instanceof PrefetchCompleteEvent) {
          synchronized (waitSync) {
             stateTransitionOK = true;
             waitSync.notifyAll();
       else if (evt instanceof ResourceUnavailableEvent) {
          synchronized (waitSync) {
             stateTransitionOK = false;
             waitSync.notifyAll();
       else if (evt instanceof EndOfMediaEvent) {
          evt.getSourceController().stop();
          evt.getSourceController().close();
       Object waitFileSync = new Object();
       boolean fileDone = false;
       boolean fileSuccess = true;
        * Block until file writing is done.
       boolean waitForFileDone() {
       synchronized (waitFileSync) {
          try {
             while (!fileDone){
                waitFileSync.wait();}
          catch (Exception e) {}
       return fileSuccess;
        * Event handler for the file writer.
       public void dataSinkUpdate(DataSinkEvent evt) {
          if (evt instanceof EndOfStreamEvent) {
             synchronized (waitFileSync) {
                fileDone = true;
                waitFileSync.notifyAll();
          else if (evt instanceof DataSinkErrorEvent) {
             synchronized (waitFileSync) {
                fileDone = true;
                fileSuccess = false;
                waitFileSync.notifyAll();
        * Create a media locator from the given string.
       static MediaLocator createMediaLocator(String url) {
          MediaLocator ml;
            if (url.indexOf(":") > 0 && (ml = new MediaLocator(url)) != null)
             return ml;
          if (url.startsWith(File.separator)) {
             if ((ml = new MediaLocator("file:" + url)) != null)
                return ml;
          else {
             String file = "file:" + System.getProperty("user.dir") + File.separator + url;
             if ((ml = new MediaLocator(file)) != null)
                return ml;
          return null;
        // Inner classes.
         * A DataSource to read from a list of image files and
         * turn that into a stream of JMF buffers.
         * The DataSource is not seekable or positionable.
    class ImageDataSource extends PullBufferDataSource {
         ImageSourceStream streams[];
         ImageDataSource(int width, int height, int frameRate, String folder) {
             streams = new ImageSourceStream[1];
             streams[0] = new ImageSourceStream(width, height, frameRate, folder);
         public void setLocator(MediaLocator source) {
         public MediaLocator getLocator() {
             return null;
          * Content type is of RAW since we are sending buffers of video
          * frames without a container format.
         public String getContentType() {
             return ContentDescriptor.RAW;
         public void connect() {
         public void disconnect() {
         public void start() {
         public void stop() {
          * Return the ImageSourceStreams.
         public PullBufferStream[] getStreams() {
             return streams;
          * We could have derived the duration from the number of
          * frames and frame rate.  But for the purpose of this program,
          * it's not necessary.
         public Time getDuration() {
             return DURATION_UNKNOWN;
         public Object[] getControls() {
             return new Object[0];
         public Object getControl(String type) {
             return null;
         * The source stream to go along with ImageDataSource.
    class ImageSourceStream implements PullBufferStream {
         String folder;
       String imageFile;
         int width, height;
         VideoFormat format;
       File file;
         int nextImage = 000001;     // index of the next image to be read.
         boolean ended = false;
         public ImageSourceStream(int width, int height, int frameRate, String folder) {
             this.width = width;
             this.height = height;
             this.folder = folder;
             format = new VideoFormat(VideoFormat.JPEG,
                        new Dimension(width, height),
                        Format.NOT_SPECIFIED,
                        Format.byteArray,
                        (float)frameRate);
          * This is called from the Processor to read a frame worth
          * of video data.
         public void read(Buffer buf) throws IOException {
          imageFile = "images/" + folder + "/webcam" + StringPrefix(nextImage,6) + ".jpeg";
          file = new File(imageFile);
            // Check if we've finished all the frames.
            if (!file.exists()) {
             // We are done.  Set EndOfMedia.
                 buf.setEOM(true);
                 buf.setOffset(0);
                 buf.setLength(0);
                 ended = true;
             System.out.println("all images");
             return;
    System.err.println("  - reading image file: " + imageFile);
            nextImage++;
             // Open a random access file for the next image.
             RandomAccessFile raFile;
             raFile = new RandomAccessFile(imageFile, "r");
             byte data[] = null;
             // Check the input buffer type & size.
             if (buf.getData() instanceof byte[])
              data = (byte[])buf.getData();
             // Check to see the given buffer is big enough for the frame.
             if (data == null || data.length < raFile.length()) {
              data = new byte[(int)raFile.length()];
              buf.setData(data);
             // Read the entire JPEG image from the file.
             raFile.readFully(data, 0, (int)raFile.length());
             System.err.println("    read " + raFile.length() + " bytes.");
             buf.setOffset(0);
             buf.setLength((int)raFile.length());
             buf.setFormat(format);
             buf.setFlags(buf.getFlags() | buf.FLAG_KEY_FRAME);
             // Close the random access file.
             raFile.close();
          * We should never need to block assuming data are read from files.
         public boolean willReadBlock() {
             return false;
          * Return the format of each video frame.  That will be JPEG.
         public Format getFormat() {
             return format;
       public ContentDescriptor getContentDescriptor() {
             return new ContentDescriptor(ContentDescriptor.RAW);
         public long getContentLength() {
             return 0;
         public boolean endOfStream() {
             return ended;
         public Object[] getControls() {
             return new Object[0];
         public Object getControl(String type) {
             return null;
       private String StringPrefix(int number, int length) {
          String stringNum = Integer.toString(number);
          while (stringNum.length() < length)
             stringNum = "0" + stringNum;
          return stringNum;
    }

    If your code was an SSCCE*, I could run it
    against some images that I have successfully
    used to create MOV's (using my own variant of
    JPEGImagesToMovie).
    It isn't, so I can't.
    The only thing I can suggest (off the top of
    my head) is that the images need to be all
    the same size/width, and the same as
    specified for the MOV, otherwise a corrupted
    MOV will be written.
    * http://www.physci.org/codes/sscce/

  • Creating Thumbnail from an Image with transparent background

    Hello,
    I want to create a thumbnail image of size 200 x 200 pixels from an image of any size.
    As the thumbnail is square, I'm centering the image according to size.
    The code I'm using is working fine BUT after centering and resizing original image
    and writing it to output file the remaining area is of black color.
    I want the background should be transparent.
    Code I'm using is not using JAI.
    Please suggest me the solution.
    the code I'm using is as follows:
    public static void makeThumbnail(String inFile, String thumbFile ) throws Exception {
    Image image = Toolkit.getDefaultToolkit().getImage(inFile);
    MediaTracker mediaTracker = new MediaTracker(new Container());
    mediaTracker.addImage(image, 0);
    mediaTracker.waitForID(0);
    int fixedHeight = 200 ;
    int fixedWidth = 200 ;
    int imageWidth = image.getWidth(null);
    int imageHeight = image.getHeight(null);
    double imageRatio = 0.25 ;     
    int thumbHeight = (int)(imageHeight * imageRatio );
    int thumbWidth = (int)(imageWidth * imageRatio );
    int x = ( fixedWidth - thumbWidth )/2 ;
    int y = ( fixedHeight - thumbHeight )/2 ;
    System.out.println(thumbHeight + " - " + y );
    System.out.println(thumbWidth + " - " + x );
    // draw original image to thumbnail image object and
    // scale it to the new size on-the-fly
    BufferedImage thumbImage = new BufferedImage(fixedWidth, fixedHeight, BufferedImage.TYPE_INT_RGB);
    Graphics2D graphics2D = thumbImage.createGraphics();
    graphics2D.setColor( new Color( 255, 255, 255, 0) );
    int rule = AlphaComposite.SRC_IN ;
    AlphaComposite ac = AlphaComposite.getInstance(rule, 0.9f);
    graphics2D.setComposite(ac);
    graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);
    graphics2D.drawImage(image, x, y, thumbWidth, thumbHeight, null);
    // save thumbnail image to OUTFILE
    BufferedOutputStream out = new BufferedOutputStream(new    FileOutputStream(thumbFile));
    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
    JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(thumbImage);
    int quality = 60 ;
    quality = Math.max(0, Math.min(quality, 100));
    param.setQuality((float)quality / 100.0f, false);
    encoder.setJPEGEncodeParam(param);
    encoder.encode(thumbImage);
    }

    Change this line
    BufferedImage thumbImage = new BufferedImage(fixedWidth, fixedHeight,
              BufferedImage.TYPE_INT_RGB);
    ...to use a BufferedImage type that supports transparency like TYPE_INT_ARGB or TYBE_4BYTE_ABGR (I would recommend the latter since your saving the image).
    Also, btw, you're not going to like the quality of the thumbnail if the image is reduced by more then half its size.

  • How can I create an iBook using iBooks Author using images from a PDF?

    I have a complex book with custom fonts and lots of images, and the client wants it on the iPad. So my most reasonable option seems to be to take images from a PDF and use them for the pages. However, images in iBook Author don't get "laid out" as expected in Portrait mode. How can I  create a layout that is essentially one image per page in portrait mode, and then convert that to landscape mode? Or is there an easier way to go about this?

    tk0us wrote:
    Make sure you have disabled portrait in the Inspector.
    I don't understand why portrait mode defaults images and other "widgets" to thumbnails. The original format of the book (and of 99% of all books I'm guessing) is in portrait format. By forcing the book to work only in landscape mode it's forcing the page image to be half the size, and that makes using this book particularly difficult. Is there no way to force the pages to be full-size in portrait mode?

  • Help needed trying make thumbnails from large Image Files

    I posted this to the Flex message bored, too. I didn't notice
    the Actionscript 3.0 until after. Sorry. Anyway, I have some
    ActionScript 3.0 code, created with Flex that will load a large
    JPEG image (say 3000x2000 pixels) that I'm trying to create a 100
    pixel thumbnail. I have the code working where I generate the
    thumbnail, but it's not maintaining the aspect ratio of the
    original image. It's making it square, filling in white for the
    part that doesn't fit.
    I've tried just setting the height or width of the new
    image, but that doesnt render well, either.
    To see what I'm talking about, I made a screen shot, showing
    the before image, and the rendered as thumbnail image:
    Image of demo
    app at Flickr.
    Now, there's a few things important to note. I'm saving the
    thumbnail off as a JPEG. As you can see in my sample application,
    the original renders fine with the proper aspect ratio, it's when
    I'm copying the bytes off the bitmapdata object, where I need to
    specify a width and height, that the trouble starts. I've also
    tried using .contentHeight and .contentWidth and some division to
    manually specify a new bitmapdatasize, but these values seem to
    always have NaN.
    private function makeThumbnail():void{
    // create a thumbnail of 100x100 pixels of a large file
    // What I want to create is a a thumbnail with the longest
    size of the aspect
    // ratio to be 100 pixels.
    var img:Image = new Image();
    //Add this event listener because we cant copy the
    BitmapData from an
    /// image until it is loaded.
    img.addEventListener(FlexEvent.UPDATE_COMPLETE,
    imageLoaded);
    img.width=100;
    img.height=100;
    img.scaleContent=true;
    img.visible = true;
    // This is the image we want to make a thumbnail of.
    img.load("file:///C:/T5.jpg");
    img.id = "testImage";
    this.addChildAt(img, 0);
    private function imageLoaded(event:Event):void
    // Grab the bitmap image from the Input Image and
    var bmd:BitmapData =
    getBitmapDataFromUIComponent(UIComponent(event.target));
    //Render the new thumbnail in the UI to see what it looks
    theImage.source = new Bitmap(bmd); //new Bitmap(bmd);
    public static function
    getBitmapDataFromUIComponent(component:UIComponent):BitmapData
    var bmd:BitmapData = new
    BitmapData(component.width,component.height );
    bmd.draw(component);
    return bmd;
    }

    Hi Tod,
    Take a look at this post:
    I'll have to say the smoothing of the thumb is not perfect, but maybe in combination with your code.. you get good results.
    Post a solution if you acheive better smooth thumb results.
    Link to forum post:http://forums.adobe.com/message/260127#260127
    Greets, Jacob

  • Automator: Create new folders from .csv file and put images inside.

    I have a challenging Automator task to achieve. I need to
    1) create a set of folders labeled with the contents in column A of a csv file. (example: column A1 JoeBrown A2 SuzyBrown A3 JimBrown etc..) resulting in
    3 folders titled JoeBrown, SuzyBrown, and JimBrown
    2) take the image represented by an image number in column B of the same csv file and move that file into the folder that was created (example: A1 JoeBrown gets a folder created by the name JoBrown and column B IMG_1234.jpg is physically moved from within the same folder as the .csv file into the folder created by column A.
    Both the csv and img files would be in the same folder. I have the script to create a set of folders from a csv list just can't complete the moving of files based on the contents of column B.
    SUMMARY: I have a folder containing several images img_0001, img_0002, img_0003 etc. and a csv file that contains columnA a series of names and column B a series of jpg image numbers. I need to have a script that will create folders labeled whatever name is in column A (see the script below. it works great!) then move the images from column B to the folders generated from column A.
    The csv script is:
    tell application "Finder"
      set mgFolder to container of mgCSVfile as string
      repeat with x from 1 to count paragraphs of mgList
        set text item delimiters of AppleScript to ","
        set mgThisList to text items of paragraph x of mgList as list
        set text item delimiters of AppleScript to ""
        set mgTopFolder to item 1 of mgThisList
        if (exists folder mgTopFolder of folder mgFolder) is false then
          make new folder at mgFolder with properties {name:mgTopFolder}
        end if
        set mgNewFolder to (folder mgTopFolder of folder mgFolder) as alias
        repeat with i from 2 to count mgThisList
          if item i of mgThisList is not "" then
            set mgSubFolder to item i of mgThisList
            if (exists folder mgSubFolder of folder mgNewFolder) is false then
              make new folder at mgNewFolder with properties {name:mgSubFolder}
            end if
          end if
        end repeat
      end repeat
    end tell
    Thanks for any help that may come my way.

    This should work
    (assumes a true "," seperated file with only two items per line, i.e.: Test,Test.jpg):
    The Run Shell Script Action is:
    cd "${1%/*}"
    while read line         
    do         
         FolderName=${line%,*}
         ImageName=${line#*,}
         mkdir "$FolderName"
         mv "$ImageName" "$FolderName"
    done < "$1"

  • How can I create a horizontal scrollbar with a centered thumb that scrolls content from both sides?

    I am having trouble figuring out how to create a horizontal scrollbar component either by itself or nested inside a data list component that will have it's thumb centered in the track when running and reveal content from either the right or left side when the thumb is moved. The furthest I have managed to get is to create a data list component with a scrollbar component inside that has a centered thumb that reveals content from the right side of the list (0 through 10 of the items) but only reveals blank area when tracking the other way. Is there a way to create say… negative items in the data list… 0 through -10? Or am I approaching this the wrong way. Please help. Thanks.

    Mykola,
    Thanks. I guess I was hoping for an answer that addressed my question from a designer's point of view rather than a developers'. As a designer with over ten years experience using Adobe products for print work it is difficult to understand why "centered" is such a complicated concept when designing art for use on the web. It is so frustrating to realize that most containers for images and text can only be resized by pushing and pulling handles located on the right and bottom; Catalyst seems like a great start but if Adobe really wanted to impress the "design" community it might consider putting all that supercharged code underneath the hood of some more familiar "design" tools. Maybe a "catalytic converter" would allow the introduction of a "centered" tool for every element.
    After all, why is it literally twenty-five times more difficult, requiring the use of three additional programs to create a component that functions exactly like a typical data list and scroll bar with the exception that the thumb is "centered" on the track and reveals images from both the right and left. For that matter why not also have as an option a thumb that snaps to the bottom of the track and reveals images from the top… and one that snaps to the right and reveals images from the left when you run the project? It just seems so logical to expand the scroll bar component to include these options.
    I am very glad to have Catalyst and will redesign my project to fit within the constraints of the tools available in the program but it seems that if Adobe is really serious about Catalyst being a window into the world of web design for designers/AD's that perhaps it might benefit by focusing on what might improve the program from the designer's point of view. I hate to say it but the Catalyst forum is already rife with answers to questions that are riddled with code… Literally. And to be honest most designers don't have the time to decipher that code. As a designer I work regularly and have a deep understanding of Photoshop, InDesign, Illustrator, Acrobat Pro, Final Cut Pro, Final Draft and modo. I do hi-res assembly, retouching, design and layout, identity, production, 3D modeling and rendering, video editing… and before I switch to using Catalyst for web mock-ups I am going to need a more "designer" friendly set of tools and definitely a "centered" control.
    I really think Adobe is fantastic. But I also think it could take a lesson from a great little company called Luxology. I tried learning 3D modeling and rendering for years with programs like Lightwave, Maya and others, always with mixed results. Then Luxology came along and actually delivered on their promise to create a 3D program for artists. What was the factor that made all the difference? Well, besides the Apple award winning interface and sets of tools it was the training available on their sight. The program itself ships with thirty-six hours of quicktime movies. And hundreds more hours available for download. I have never yet not been able to quickly and easily find an answer to a question I had about how to accomplish something in modo. You know how long I have already spent on Adobe TV searching through videos and on the Catalyst forum searching through topics trying to get an answer to what I thought was a very simple question? Way too many. If I have a question about a Luxology product that I can't find the answer to do you know what I do? I call Brad Peebler, the President of Luxology. I'm not special nor do I work for some special development house with special privileges that is simply their policy. And that policy has paid big dividends. Both ILM and Pixar has licensed their technology.
    Well… I apologize for this long response but I really think that if Catalyst is going to attract the market it wants that it will have to consider putting some designers on the development team. After all… Isn't that what the promo videos tout… Finally a web design program for designers. Well, I guess we'll see.
    Karl

  • Create randomized fill from set of images

    I have a set of images that are all different, but tile nicely together. I would like to create a pattern (or similar) that I can use to fill an area using those images randomly selected. That is, they should all be aligned in a grid, but each tile of the grid should be chosen at random from one of the images. The purpose of this is to have a tiling that doesn't repeat, a la http://en.wikipedia.org/wiki/Wang_domino and, more generally, http://en.wikipedia.org/wiki/Penrose_tiling
    Here are a few images from a set as an example of what I would like to randomly tile:
    Of course I could place them manually, but I may need to fill an area with thousands of these, and even if I did place them by hand, it wouldn't be very flexible as far as reshaping/resizing the tiled area, etc.
    I'm trying to do this with Illustrator CS6 if it helps. Thanks in advance for any help!
    -Greg

    Mike Gondek wrote:
    Does this help?
    Not in any way I can see. That (basically) just downsamples the selected image to create a tiled look that mimcs the original image. I need to fill a space exactly like a pattern would, but with each tile of the pattern being randomly selected from a set of images.
    For clarity, here's a full example:
    Given these three tiles:
    Fill a space with random tiles to generate something like the following:
    Note that in the above example, I did the placement by hand, which is both tedious and probably not very random on a large scale, nor flexible at all for different fills or later modification.

  • Create Thumbnail From Flv File

    Hi to all,
    I want to create a thumbnail image from flv video file.
    I am reading the flv file via FileInputStream as a byte array and i try to create a image file from that array. But i get only Block Image. Is there anyother way to do it
    import java.io.*;
    import java.awt.*;
    class sample
    public static void main(String ars[])
    try
    Image temp = null;
    File f=new File("sample.flv");
    FileInputStream in=new FileInputStream(f);
    byte a[]=new byte[(int)f.length()];
    int offset = 0;
    int numRead = 0;
    while (offset < a.length
    && (numRead=in.read(a, offset, a.length-offset)) >= 0) {
    offset += numRead;
    temp = Toolkit.getDefaultToolkit().createImage(a);
    java.awt.image.BufferedImage bufferedImage =
              new java.awt.image.BufferedImage(800,600, java.awt.image.BufferedImage.TYPE_INT_RGB);
         java.awt.Graphics g = bufferedImage.createGraphics();               
         g.setColor(java.awt.Color.white);
         g.fillRect(0, 0, temp.getWidth(null),temp.getHeight(null));
         g.drawImage(temp, 0, 0, null);
         g.dispose();
         f = new File("sample1.jpg");
         FileOutputStream out = new FileOutputStream(f);
         com.sun.image.codec.jpeg.JPEGImageEncoder encoder = com.sun.image.codec.jpeg.JPEGCodec.createJPEGEncoder(out);
         com.sun.image.codec.jpeg.JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bufferedImage);     
         param.setQuality(7.0f, true);
         encoder.setJPEGEncodeParam(param);
         encoder.encode(bufferedImage);
    catch(Exception ex)
    System.out.print(ex);
    Please Help to Me

    You may start looking at external tables if it is that you want. Here is a link.
    http://otn.oracle.com/pls/db10g/db10g.drilldown?remark=&word=external+tables&book=&preference=

  • Script for making random thumbnails from single image

    Hi all,
    I need something like a hundred different thumbnails from each image in a series of images, that is, hundred random sections of the same image, saved in a folder as jpg,  and i was hoping that i could find a script for this.
    What the script has to do is:
    select the size of the crop (this would also be the dimensions of the thumbnail saved)
    rotate crop selection in a random orientation and place the crop randomly on the canvas
    save the image as a jpg in a folder
    return to original image,
    repeat process x times before quitting script.
    I dont think this should be to difficult to make a script for, but unfortunately i don´t know how to code.
    Is there anybody that could help me with this?
    This would save me a lot of time!

    You can give this a try:
    // create copies with pseudo random clipped and rotated parts of image;
    // thanks to xbytor;
    // 2012, use at your own risk;
    #target photoshop
    if (app.documents.length > 0) {
    var originalRulerUnits = app.preferences.rulerUnits;
    app.preferences.rulerUnits = Units.POINTS;
    // set name for folder to save jpgs to;
    var folderName = "rotatedJpgs";
    // set number of jpgs;
    var theNumber = 100;
    // width and height;
    var theWidth = 500;
    var theHeight = 500;
    // calculate some values;
    var theDiagonal = Math.sqrt ((theWidth * theWidth) + (theHeight * theHeight));
    var diagAngle = angleFromRadians(Math.acos((theWidth) / (theDiagonal)));
    // get file name and path;
    var myDocument = app.activeDocument;
    var docName = myDocument.name;
    try {
              var basename = docName.match(/(.*)\.[^\.]+$/)[1];
              var docPath = myDocument.path;
    catch (e) {
              basename = docName;
              var docPath = "~/Desktop";
    // create folder if it does not exist yet;
    if (Folder(docPath + "/" + folderName).exists == true) {
              var docPath = docPath + "/" + folderName;
    else {
              var theFolder = Folder(docPath + "/" + folderName).create();
              var docPath = docPath + "/" + folderName;
    // document dimensions;
    var docWidth = myDocument.width;
    var docHeight = myDocument.height;
    // jpg options;
    var jpegOptions = new JPEGSaveOptions();
    jpegOptions.quality = 10;
    jpegOptions.embedColorProfile = true;
    jpegOptions.matte = MatteType.NONE;
    // duplicate image;
    var theCopy = myDocument.duplicate (theCopy, true);
    var origResolution = theCopy.resolution;
    theCopy.resizeImage(undefined, undefined, 72, ResampleMethod.NONE);
    var docHalfWidth = theCopy.width / 2;
    var docHalfHeight = theCopy.height / 2;
    var theLayer = smartify2010(theCopy.layers[0]);
    theCopy.resizeCanvas (theWidth, theHeight, AnchorPosition.MIDDLECENTER);
    var theHistoryState = theCopy.activeHistoryState;
    // do the variations;
    for (var m = 0; m < theNumber; m++) {
    var theAngle = Math.random() * 360;
    theLayer.rotate (theAngle, AnchorPosition.MIDDLECENTER);
    //theCopy.resizeCanvas (theWidth, theHeight, AnchorPosition.MIDDLECENTER);
    // get tolerance offset;
    var theHor1 = Math.abs(Math.cos(radiansOf(theAngle + diagAngle)) * theDiagonal / 2);
    var theVer1 = Math.abs(Math.sin(radiansOf(theAngle + diagAngle)) * theDiagonal/ 2);
    var theHor2 = Math.abs(Math.cos(radiansOf(theAngle - diagAngle)) * theDiagonal / 2);
    var theVer2 = Math.abs(Math.sin(radiansOf(theAngle - diagAngle)) * theDiagonal / -2);
    // calculate max offset for unrotated overall rectangle;
    var thisHalfWidth = docHalfWidth - Math.max(theHor1, theHor2);
    var thisHalfHeight = docHalfHeight - Math.max(theVer1, theVer2);
    // calculate random offset for unrotated overall rectangle;
    var randomX = thisHalfWidth * (Math.random() - 0.5) * 2;
    var randomY = thisHalfHeight * (Math.random() - 0.5) * 2;
    var aDiag = Math.sqrt (randomX * randomX + randomY * randomY);
    var anAngle = angleFromRadians(Math.asin((randomY) / (aDiag))) + theAngle;
    anAngle = anAngle + Math.floor(Math.random() * 2) * 180;
    // calculate  offset for rotated overall rectangle;
    var offsetX = Math.cos(radiansOf(anAngle)) * aDiag;
    var offsetY = Math.sin(radiansOf(anAngle)) * aDiag;
    //alert (theAngle+"\n\n"+offsetX +"\n"+ offsetY+"\n\n"+ thisHalfWidth+"\n"+thisHalfHeight);
    theLayer.translate(offsetX, offsetY);
    theCopy.resizeImage(undefined, undefined, origResolution, ResampleMethod.NONE);
    theCopy.saveAs((new File(docPath+"/"+basename+"_"+bufferNumberWithZeros(m+1, 3)+".jpg")),jpegOptions,true);
    theCopy.activeHistoryState = theHistoryState;
    // clean up;
    theCopy.close(SaveOptions.DONOTSAVECHANGES);
    app.preferences.rulerUnits = originalRulerUnits;
    ////// radians //////
    function radiansOf (theAngle) {
              return theAngle * Math.PI / 180
    ////// radians //////
    function angleFromRadians (theRad) {
              return theRad / Math.PI * 180
    ////// buffer number with zeros //////
    function bufferNumberWithZeros (number, places) {
              var theNumberString = String(number);
              for (var o = 0; o < (places - String(number).length); o++) {
                        theNumberString = String("0" + theNumberString)
              return theNumberString
    ////// function to smartify if not //////
    function smartify2010 (theLayer) {
    // make layers smart objects if they are not already;
              app.activeDocument.activeLayer = theLayer;
    // process pixel-layers and groups;
          if (theLayer.kind == "LayerKind.GRADIENTFILL" || theLayer.kind == "LayerKind.LAYER3D" || theLayer.kind == "LayerKind.NORMAL" ||
          theLayer.kind == "LayerKind.PATTERNFILL" || theLayer.kind == "LayerKind.SOLIDFILL" ||
          theLayer.kind == "LayerKind.TEXT" || theLayer.kind == "LayerKind.VIDEO" || theLayer.typename == "LayerSet") {
                        var id557 = charIDToTypeID( "slct" );
                        var desc108 = new ActionDescriptor();
                        var id558 = charIDToTypeID( "null" );
                        var ref77 = new ActionReference();
                        var id559 = charIDToTypeID( "Mn  " );
                        var id560 = charIDToTypeID( "MnIt" );
                        var id561 = stringIDToTypeID( "newPlacedLayer" );
                        ref77.putEnumerated( id559, id560, id561 );
                        desc108.putReference( id558, ref77 );
                        executeAction( id557, desc108, DialogModes.NO )
                        return app.activeDocument.activeLayer
              if (theLayer.kind == LayerKind.SMARTOBJECT || theLayer.kind == "LayerKind.VIDEO") {return theLayer};
    ////// get an angle, 3:00 being 0˚, 6:00 90˚, etc. //////
    function getAngle (pointOne, pointTwo) {
    // calculate the triangle sides;
              var width = pointTwo[0] - pointOne[0];
              var height = pointTwo[1] - pointOne[1];
              var sideC = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2));
    // calculate the angles;
              if (width+width > width) {theAngle = Math.asin(height / sideC) * 360 / 2 / Math.PI}
              else {theAngle = 180 - (Math.asin(height / sideC) * 360 / 2 / Math.PI)};
              if (theAngle < 0) {theAngle = (360 + theAngle)};
              return theAngle

Maybe you are looking for

  • Please help - extremely urgent.

    My apologies for the simple question, but I can't for the life of me remember how I once got this to work. I have an third party app that passes a double value to my program, then later retrieves this value from the program. <snip> tranTotal=0.0 void

  • Cross Installation

    Hi everyone I have installed oracle database 11g on my pc and recently installed oracle developer suite 10g I am unable to connect to my database using oracle developer suite It's giving an error that "ORA-12154:TNS could not resolve the connect iden

  • MBPr Display Durability Issues

    Hi all, I purchased my brand-new Macbook Pro with Retina display around 9 months ago, and since then I've had some serious issues with the screen panel. Within the first few weeks of ownership I found several small holes in the screen - almost like b

  • New Air, Time Machine install, Access Rights

    I just bought a new MacBook Air and to move all my files from my old MacBook Air, I did a restore from Time Machine. Now there are many files that I directories I cannot put files in unless I sign in using my Admin password? What happened? Also, some

  • Ctrl + Scroll to zoom issues

    The ctrl + Scroll to zoom function is no longer working since I upgraded to Mavericks (21.5" late 2011 iMac) Anybody else experiencing problems or know if this will be a bug that's likely to be fixed? I used to use it a lot and it's driving me crazy