Extracting transparent image from canvas

Hi Folks,
Given an image painted on a graphics2D, I need to copy some parts of this image to be able to process them and repaint them in place, giving to the original image a different look.
Theses parts are not rectangles but donuts like shapes (circular surface with a hole in he middle).
The approach I tried in the following:
- Combining 2 ellipses Shape to be able to create an Area representing the donut shaped surface
- Clipping the Graphics2D this Area
[at this point, if the panel is repainted with the clip set, the original image is only visible through the donut shape clip, which is exactly was I want]
- creating a new image with transparency, painting the clipped original image onto this new image
[that's where it does not work, if I paint the new image on the canvas, it's blank, or when I disabled transparency, it's a squared shape, and not a donut like shape]
Any help/hint would be gladly appreciated, below in the paintComponent method
Thanks
Elie
public synchronized void paintComponent(Graphics g) {
        g2d = (Graphics2D)g;
        if ( readyToDisplayImage == null ) {
            g2d.setColor(getBackground());
            g2d.fillRect(0, 0, getWidth(), getHeight());
            return;
        // account for borders
        Insets insets = getInsets();
        int tx = insets.left + originX;
        int ty = insets.top  + originY;
        // clear damaged component area
        Rectangle clipBounds = g2d.getClipBounds();
        g2d.setColor(getBackground());
        g2d.fillRect(clipBounds.x,
                     clipBounds.y,
                     clipBounds.width,
                     clipBounds.height);
          g2d.drawRenderedImage(readyToDisplayImage,
                              AffineTransform.getTranslateInstance(tx, ty));
   if(test) {
        Shape oldClip = g2d.getClip() ;
        Shape s1 = (new Circle(500,500, 150)).toEllipse2D();
        Shape s2 = (new Circle(500,500, 250)).toEllipse2D();
        Area a1 = new Area(s1);
        Area a2 = new Area(s2);
        a2.subtract(a1); // donut shaped mask
         g2d.setColor(getBackground());
         g2d.fillRect(0, 0, getWidth(), getHeight());
        g2d.setClip(a2) ;
        g2d.drawRenderedImage(readyToDisplayImage,AffineTransform.getTranslateInstance(tx, ty));
        Rectangle bounds = a2.getBounds();
        BufferedImage subimage = new BufferedImage(bounds.width, bounds.height, BufferedImage.TYPE_INT_ARGB);
        Graphics2D g2 = (Graphics2D) subimage.createGraphics();
        // Clear image with transparent alpha by drawing a rectangle  - commented beacause worsens things
       // g2.setComposite(AlphaComposite.getInstance(AlphaComposite.CLEAR, 0.0f));
       // Rectangle2D.Double rect = new Rectangle2D.Double(0,0,bounds.width, bounds.height);
        //g2.fill(rect);
        g2.drawRenderedImage(readyToDisplayImage, AffineTransform.getTranslateInstance(bounds.x, bounds.y));
        g2.dispose();
        g2d.setClip(oldClip) ; //back to normal
     // Now checking whether the extracted sub image has the expected shape : this is not the case
         g2d.setColor(getBackground());
         g2d.fillRect(0, 0, getWidth(), getHeight());
         g2d.drawImage(subimage, bounds.x, bounds.y, this );
    }

I found another way, which is using ROIShape class as mask.
But an exception is raised by the last line of the method.
Apparently the resulting image form and "add" between a oneband and a 3 band image is not supported.
Also, if I do convert the one band image to color, it does not solve the problem
ColorModel colorModel = cropped.getColorModel();
pb = new ParameterBlock();
     pb.addSource(maskimage);
     pb.add(colorModel);
maskimage = JAI.create("colorconvert", pb);
What would be the right way to do this ?
Thanks
trace:
image mask bounds=java.awt.Rectangle[x=250,y=250,width=500,height=500]
cropped image bounds=java.awt.Rectangle[x=250,y=250,width=500,height=500]
subimage image bounds=java.awt.Rectangle[x=250,y=250,width=500,height=500]
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at com.sun.media.jai.opimage.AddOpImage.computeRectByte(AddOpImage.java:268)
at com.sun.media.jai.opimage.AddOpImage.computeRect(AddOpImage.java:220)
at javax.media.jai.PointOpImage.computeTile(PointOpImage.java:974)
at com.sun.media.jai.util.SunTileScheduler.scheduleTile(SunTileScheduler.java:912)
at javax.media.jai.OpImage.getTile(OpImage.java:1139)
at javax.media.jai.RenderedOp.getTile(RenderedOp.java:2268)
at sun.java2d.SunGraphics2D.drawTranslatedRenderedImage(SunGraphics2D.java:2864)
at sun.java2d.SunGraphics2D.drawRenderedImage(SunGraphics2D.java:2751)
at circleops.ImagePanel.paintComponent(ImagePanel.java:253)
public synchronized void paintComponent(Graphics g) {
        g2d = (Graphics2D)g;
        if ( readyToDisplayImage == null ) {
            g2d.setColor(getBackground());
            g2d.fillRect(0, 0, getWidth(), getHeight());
            return;
        // account for borders
        Insets insets = getInsets();
        int tx = insets.left + originX;
        int ty = insets.top  + originY;
        // clear damaged component area
        Rectangle clipBounds = g2d.getClipBounds();
        g2d.setColor(getBackground());
        g2d.fillRect(clipBounds.x,
                     clipBounds.y,
                     clipBounds.width,
                     clipBounds.height);
            Translation moves the entire image within the container
        g2d.drawRenderedImage(readyToDisplayImage,
                              AffineTransform.getTranslateInstance(tx, ty));
        g2d.setColor(Color.red);                     
        g2d.fillRect(lastClickedX-4, lastClickedY-4, 8, 8);
        //System.out.println("x="+currentX+" y="+currentY);
        Iterator<ConcentricTurbulence> it = concentrics.iterator();
        while(it.hasNext()) {
        if(test) {
        Shape oldClip = g2d.getClip() ;
        Shape s1 = (new Circle(500,500, 150)).toEllipse2D();
        Shape s2 = (new Circle(500,500, 250)).toEllipse2D();
        Area a1 = new Area(s1);
        Area a2 = new Area(s2);
        a2.subtract(a1);
        ROIShape roishape = new ROIShape(a2);
        PlanarImage maskimage = roishape.getAsImage();
        Rectangle bounds = maskimage.getBounds();
        System.out.println("image mask bounds="+bounds.toString());
        ParameterBlock pbc = new ParameterBlock();
        pbc.addSource(readyToDisplayImage);
        pbc.add((float)bounds.x);
        pbc.add((float)bounds.y);
        pbc.add((float)bounds.width);
        pbc.add((float)bounds.height);
        PlanarImage  cropped = JAI.create("Crop", pbc, null);
        System.out.println("cropped image  bounds="+cropped.getBounds());
        ParameterBlock pbd = new ParameterBlock();
        pbd.addSource(cropped);
        pbd.addSource(maskimage);
        PlanarImage  subimage = JAI.create("add", pbd, null);
        System.out.println("subimage image  bounds="+subimage.getBounds());
         g2d.setColor(getBackground());
         g2d.fillRect(0, 0, getWidth(), getHeight());
         g2d.drawRenderedImage(subimage, AffineTransform.getTranslateInstance(bounds.x, bounds.y));
    }

Similar Messages

  • Which programs if any can extract the image from existing QTVR pano file?

    Which programs if any can extract the image from existing QTVR panorama files that were created with one image?
    Any ideas?
    Thank you

    Unless you can find an open source ODBC driver for SQL Server that runs on Solaris (and I wouldn't be overly hopeful there) Heterogeneous Services would require that you license something-- a third party ODBC driver, a new Oracle instance, or an Oracle Transparent Gateway.
    As I stated below, you could certainly use SQL Server's ETL tool, DTS. Oracle's ETL tools would require additional licensing since you're just on 9.2. You could also write a small application (Java or otherwise) that connected to both databases and transferred the data. If you're particularly enterprising, you could load the SQL Server Type 4 JDBC driver into Oracle's JVM and write a Java stored procedure that connected to the SQL Server database via JDBC, but that's a pretty convoluted approach.
    Justin

  • How to save an image from canvas to jpeg2000 format?

    good day! i would like some help about jj2000. i wish to save an image from canvas to a jpeg2000 format file. how will i do it using the jj2000? i just need to save it to a file.
    please help!!!
    thank you in advance!
    lrds

    I am not familiar with Jpeg2000, but the easiest way I've found to go from Java to a JPeg file is with Java Adavanced Imaging (JAI) package from Sun. Take a look at it and see if it meets your requirements.

  • Problem: importing a transparent image from Photoshop to Premiere.

    Dear Adobe community,
    I am trying to import a transparent image from Photoshop to Premiere Pro CC. Whatever file format I choose to export from Photoshop, Premiere Pro CC will not import the file correctly. When I import is, two things occur: 1) the image gets imported, but the white background is still there or 2) the image gets an error "The importer reported a generic error".
    Does anyone have an idea how I can get an image with a white background transparent into Premiere Pro CC.
    Specs:
    MacBook Pro (Retina, 13-inch, eind 2013)
    2.8 GHz Intel Core i7
    16GB RAM
    1536MB Intel Iris videocard
    Thanks!
    Christiaan

    You need to make sure the image has an alpha channel.
    Images like jpeg dont have an alpha channel.
    Psd or png do and the image has to be RGB.
    Make sure the background in PS is also transparant.

  • Extracting Linked images from PDF

    Good afternoon,
    I have a PDF which I created in illustrator but unfortunately I had a problem with with my computer which meant that the recovered files were corrupted. I found a PDF on disc which opens in Acrobat just fine but when I open it in illustrator it asks for the linked images which of course I do not have.
    The linked images must be in the PDF as they show up ok.
    Is there a way of extracting the images from the PDF so that I can do a repair in illustrator?
    Hope someone can help.
    Thank  you,
    Kirk

    If you have photoshop, open that pdf from it.  File/open, then chose images...
    Another option, if you have Acrobat Pro, go to Advanced/Document procesing/Export images

  • Best way to extract all images from Messages?

    My iPad freaked out earlier today and unfortunately I had to do a recovery and restore (from iCloud backup).  I say unfortunately because I was 90% certain I was not backing up photos/video (and there was no way to check before doing the restore).  And indeed I had photo/video backup turned off.
    I'm mostly back to normal now, except for all the lost photos/videos.  I've gone through some of Messages to Save ones I sent there. 
    What is the best way to extract all images from past Messages so I don't have to tediously load earlier messages?   I understand there are some programs that allow one to go through a local backup and go through messages.  But for this I suppose I'd first need to make a local backup of everything, no?  Are those programs able to extract just images I've sent or do they grab everything (i.e. images others have sent me?)
    Related, before I did the initial restore could I have easily retrieved the photos/images on the device through some third-party solution?
    Lastly, and semi-off topic.. What determines the image name for an image in Messages?   For example, I Copied a photo someone sent me via Messages and Pasted it three times back to her (all at the same time).   The image filenames are IMG_6447.jpg,  IMG_4820.jpg, IMG_0291.jpg.  

    Thanks Kirby.  I utilize Aperture 3 by reference instead of a compiled library.  So I have individual folder/projects stored on my laptop.  By exporting as a library, does Aperture bring these folders and related images "with it"?
    What I don't want to lose is any post processing I do in the field which creates separate versions and/or .PSD files.
    Thanks for your continued assistance.
    Chris

  • I saw Corey Barker do a demo where he extracted an image from the background, then cleaned up the edge with a process that allowed him to de-fringe it.  I can't remember how he did it. And I can't find it.  Help!

    I saw Corey Barker do a demo a few weeks ago where he extracted an image from the background, then used a technique I was not familiar with to clean it up. You selected the area, then did something that involved going either to edit or select, then there was a dialog box that allowed you to dial it in, depending on the color background you were removing.  I can't find this anywhere. Can't remember.  It's driving me crazy!  If someone can help me find this, I would be very glad and grateful. Thanks!  Laura

    In technical support, sometimes you have to make educated guesses. I'm sorry that you were offended.
    iTunes does prompt when it is going to erase a device, and the message is clear.
    She said in her message that she was able to successfully sync the old ipad. This indicated to me that itunes wiping the data was not an issue, because either it had been setup at the apple store (in which case it doesn't actually wipe the ipad despite saying it will*) (*based on a single case I saw), or because the itunes media folder was migrated.
    Furthermore, my solution was to tell her how to backup her ipad (by either doing it manually, or as a last resort, by deleting the corrupt backup -- that she couldn't access anyway.)
    I got that last part of the instructions from the "Taking Control of your iphone" book which I found samples of when I did a google search for "corrupted backup itunes".
    She marked this as a solution, so it worked for her.

  • Extracting Tiff Image from PDF document

    Hi Leo,
    I need to extract Tiff images from PDF file in .NET applications. Is there any way to extract images using Javascript, Plug-ins or other APIs.
    If possible can you kindly send some code snipplet

    LiveCycle is a range of products, designed (almost all) to run on
    servers. Except LiveCycle Designer, bundled with Acrobat. These
    provide a Java API.
    http://www.adobe.com/products/livecycle/
    Aandi Inston

  • Extracting an image from WebBrowser

    I want to extract an image from WebBrowser and I don't want to download it because some server don’t let download to non-browsers.
    Does method for this operation?

    First of all you need to get the image url. To retrieve this you can use Regex, or HTMLAgilityPack or etc. 
    than you can download it from the url of the image as:
    public static void DownloadImageWithWebclient(string url)
    try
    string filename = System.IO.Path.GetFileName(new Uri(url).LocalPath);
    var _client = new WebClient();
    _client.DownloadFileAsync(new Uri(url), filename);
    catch
    There are many alternative ways of downloading such as non async. 
    Also, you can set webclient headers and useragent to responde to the target website as a browser in order to avoid being blocked your request. 

  • Extract / export image from Pages

    I have an image on a Pages document that I want to extract to save as the image only as a jpg.
    I've found the following link to an answer: Extract/ export images from a Pages document?
    But I can't seem to find this File Info option on Pages 5.5.2.
    Any ideas?
    Regards, Mel

    That instruction is for the version of Pages that works, Pages '09.
    And you are not using Mavericks.
    Before Yosemite it used to be possible to copy anything and create a new file in Preview .app just by going command n, but Yosemite now turns the clipboard into a low res 72dpi file, rasterising all text and vector content.
    Like every thing Apple does lately, Yosemite is a huge step backwards and undoes all the good work that went into OS X in the last 15 years.
    If the multiple items are all bitmap images, you can create a blank bitmap file in Preview:
    1. Make a simple screen grab of a white area anywhere in view with command shift 4 > drag over area
    2. Make that screen grab the size you want it to be under Tools in Preview
    3. Open your original images in Preview and Copy/Paste them one by one into the blank file, positioning and resizing as you go.
    4. Saving will freeze the final design as one image.
    Peter

  • How do I isolate or extract an image from a photo?

    Does anyone know of any programs that will help to extract an image from a photo so it doesn't have an ugly background?

    I use PhotoShop Elements 6 - click here for links to other graphic programs to consider (not all will do what you want).
    LN

  • Create transparency image from shape

    Hi,
    I'd like to create the application that create the transparency image from drawing data. the code is as follows.
    BufferedImage img = new BufferedImage(350,350,BufferedImage.TYPE_INT_RGB);
    Graphics2D g2 = img.createGraphics();
    GeneralPath gp = new GeneralPath(GeneralPath.WIND_NON_ZERO);
    gp.moveTo(100,100);     gp.lineTo(100,200);
    gp.lineTo(200,200);     gp.lineTo(200,100); gp.closePath();
    g2.setPaint(Color.yellow);
    g2.fill(gp);
    g2.setStroke(new BasicStroke(2));
    g2.setPaint(Color.red);
    g2.draw(gp);
    File outFile = new File("outimg.png");
    ImageIO.write(img,"png",outFile);
    I can create the image from such code, but the image is not transparent since the background is all black. What additional coding I need to make it transparent?
    Thanks,
    Sanphet

    1. use a PixelGrabber to convert the image into a pixel array
    2. (assuming pixel array called pixelArray) :
    if (pixelArray[loopCounter] == 0xFFFFFFFF) { //assuming the black your seeing is not a fully transparent surface
        pixelArray[loopCounter] = pixelArray[loopCounter] & 0x00FFFFFF; //sets alpha channel for all black area to 0, thus making it fully transparent
    }3. recreate an Image using MemoryImageSource
    I'm sure there is a quicker solution using some built in java functions...but hey, I dont' know it!! :)
    Here's a sample class that utilizes these techniques:
    * To start the process, click on the window
    * Restriction (next version upgrade) :
    *     - firstImage must be larger
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.image.*;
    import javax.swing.*;
    public class AdditiveBlendingTest extends javax.swing.JFrame implements MouseListener, ActionListener, WindowListener {
        static final int ALPHA = 0xFF000000; // alpha mask
        static final int MASK7Bit = 0xFEFEFF; // mask for additive/subtractive shading
        static final int ZERO_ALPHA = 0x00FFFFFF; //zero's alpha channel, i.e. fully transparent
        private Image firstImage, secondImage, finalImage; //2 loades image + painted blended image
        private int firstImageWidth, firstImageHeight, secondImageWidth, secondImageHeight;
        private int xInsets, yInsets; //insets of JFrame
        //cliping area of drawing, and size of JFrame
        private int clipX = 400;
        private int clipY = 400;
        //arrays representing 2 loades image + painted blended image
        private int[] firstImageArray;
        private int [] secondImageArray;
        private int [] finalImageArray;
        //system timer, used to cause repaints
        private Timer mainTimer;
        //used for double buffering and drawing the components
        private Graphics imageGraphicalSurface;
        private Image doubleBufferImage;
        public AdditiveBlendingTest() {
            firstImage = Toolkit.getDefaultToolkit().getImage("Image1.jpg");
            secondImage = Toolkit.getDefaultToolkit().getImage("Image2.gif");
         //used to load image, MediaTracker process will not complete till the image is fully loaded
            MediaTracker tracker = new MediaTracker(this);
            tracker.addImage(firstImage,1);
         try {
             if(!tracker.waitForID(1,10000)) {
              System.out.println("Image1.jpg Load error");
              System.exit(1);
         } catch (InterruptedException e) {
             System.out.println(e);
         tracker = new MediaTracker(this);
         tracker.addImage(secondImage,1);
         try {
             if(!tracker.waitForID(1,10000)) {
              System.out.println("Image2.gif Load error");
              System.exit(1);
         } catch (InterruptedException e) {
             System.out.println(e);
         //calculate dimensions
         secondImageWidth = secondImage.getWidth(this);
         secondImageHeight = secondImage.getHeight(this);
         firstImageWidth = firstImage.getWidth(this);
         firstImageHeight = firstImage.getHeight(this);
         //creates image arrays
         firstImageArray = new int[firstImageWidth * firstImageHeight];
            secondImageArray = new int[secondImageWidth * secondImageHeight];
         //embeded if statements will be fully implemented in next version
         finalImageArray = new int[((secondImageWidth >= firstImageWidth) ? secondImageWidth : firstImageWidth) *
                 ((secondImageHeight >= firstImageHeight) ? secondImageHeight : firstImageHeight)];
         //PixelGrabber is used to created an integer array from an image, the values of each element of the array
         //represent an individual pixel.  FORMAT = 0xFFFFFFFF, with the channels (FROM MSB) Alpha, Red, Green, Blue
         //each taking up 8 bits (i.e. 256 possible values for each)
         try {
             PixelGrabber pgObj = new PixelGrabber(firstImage,0,0,firstImageWidth,firstImageHeight,firstImageArray,0,firstImageWidth);
             if(pgObj.grabPixels() && ((pgObj.getStatus() & ImageObserver.ALLBITS) != 0)){
         } catch (InterruptedException e) {
             System.out.println(e);
         try {
             PixelGrabber pgObj = new PixelGrabber(secondImage,0,0,secondImageWidth,secondImageHeight,secondImageArray,0,secondImageWidth);
             if (pgObj.grabPixels() && ((pgObj.getStatus() & ImageObserver.ALLBITS) !=0)) {
         } catch (InterruptedException e) {
             System.out.println(e);
         //adds the first images' values to the final painted image.  This is the only time the first image is involved
         //with the blend
         for(int cnt = 0,large = 0; cnt < (secondImageWidth*secondImageHeight);cnt++, large++){
             if (cnt % 300 == 0 && cnt !=0){
              large += (firstImageWidth - secondImageWidth);
             finalImageArray[cnt] = AdditiveBlendingTest.ALPHA + (AdditiveBlendingTest.ZERO_ALPHA & firstImageArray[large]) ;
         //final initializing
         this.setSize(clipX,clipY);
         this.enable();
         this.setVisible(true);
         yInsets = this.getInsets().top;
         xInsets = this.getInsets().left;
         this.addMouseListener(this);
         this.addWindowListener(this);
         doubleBufferImage = createImage(firstImageWidth,firstImageHeight);
         imageGraphicalSurface = doubleBufferImage.getGraphics();
        public void mouseEntered(MouseEvent e) {}
        public void mouseExited(MouseEvent e) {}
        public void mousePressed(MouseEvent e) {}
        public void mouseReleased(MouseEvent e) {}
        public void windowActivated (WindowEvent e) {}
        public void windowDeiconified (WindowEvent e) {}
        public void windowIconified (WindowEvent e) {}
        public void windowDeactivated (WindowEvent e) {}
        public void windowOpened (WindowEvent e) {}
        public void windowClosed (WindowEvent e) {}
        //when "x" in right hand corner clicked
        public void windowClosing(WindowEvent e) {
         System.exit(0);
        //used to progress the animation sequence (fires every 50 ms)
        public void actionPerformed (ActionEvent e ) {
         blend();
         repaint();
        //begins animation process and set's up timer to continue
        public void mouseClicked(MouseEvent e) {
         blend();
         mainTimer = new Timer(50,this);
         mainTimer.start();
         repaint();
         * workhorse of application, does the additive blending
        private void blend () {
         int pixel;
         int overflow;
         for (int cnt = 0,large = 0; cnt < (secondImageWidth*secondImageHeight);cnt++, large++) {
             if (cnt % 300 == 0 && cnt !=0){
              large += (firstImageWidth - secondImageWidth);
             //algorithm for blending was created by another user, will give reference when I find
             pixel = ( secondImageArray[cnt] & MASK7Bit ) + ( finalImageArray[cnt] & MASK7Bit );
             overflow = pixel & 0x1010100;
             overflow -= overflow >> 8;
             finalImageArray[cnt] = AdditiveBlendingTest.ALPHA|overflow|pixel ;
         //creates Image to be drawn to the screen
         finalImage = createImage(new MemoryImageSource(secondImageWidth, secondImageHeight, finalImageArray,
              0, secondImageWidth));
        //update overidden to eliminate the clearscreen call.  Speeds up overall paint process
        public void update(Graphics g) {
         paint(imageGraphicalSurface);
         g.drawImage(doubleBufferImage,xInsets,yInsets,this);
         g.dispose();
        //only begins painting blended image after it is created (to prevent NullPointer)
        public void paint(Graphics g) {
         if (finalImage == null){
             //setClip call not required, just added to facilitate future changes
             g.setClip(0,0,clipX,clipY);
             g.drawImage(firstImage,0,0,this);
             g.drawImage(secondImage,0,0,this);
         } else {
             g.setClip(0,0,clipX,clipY);
             g.drawImage(finalImage,0,0,this);
        public static void main( String[] args ) {
         AdditiveBlendingTest additiveAnimation = new AdditiveBlendingTest();
         additiveAnimation.setVisible(true);
         additiveAnimation.repaint();

  • Copy or extract an image from image fill

    It's pretty frustrating that Numbers puts images into Image Fill, so you can't easily copy/paste an image in a cell.
    But it's extra frustrating that I can't seem to find a way to copy or otherwise extract an image that is an image fill in a cell.
    That means that the only way to extract the image to use in something else is to expand it as big as possible and then do a screen capture (command-shift-control-4) of that image. A total inefficient hack, sadly.
    Suggestions are very welcome.
    Note: comments like "Numbers isn't a database" and "an image is not a formula" are not only unhelpful, but don't actually answer the questions. We're required to use it.

    Start Numbers.
    Open the worksheet with the image fill.
    Select the (Numbers) cell with the image you want to copy.
    Open Inspector from the Numbers toolbar.
    Click on either Table Inspector tab or the Fill Inspector tab. For this specific task, there is no difference.
    Click on the thumbnail image displayed. The outline should turn blue.
    Command key + C (or from the menubar, Edit, Copy) to copy the image to the clipboard.
    Now open Preview. If Preview is not already open, clicking on any image listed in Finder (.jpg, .png) will open it.
    Now in the Preview menubar, select File, New from Clipboard.
    When you click Save, you can save the image in your choice of graphic formats from the dropdown menu.
    Message was edited by: kostby

  • Extract thumbnail images from a cache file without originals?

    After an external drive crash, I'm left with only the Bridge (CS2) cache files for a folder full of images. Does anyone know a way to extract the thumbnails from the cache as jpgs or some other standalone format when you *don't* have the original image files? They would be low-res, but better than nothing. Thanks in advance.

    >>says that this export technique does not work, it produces a low res screen version of the file.
    Are you certain the original files were any better?
    My preferred method of doing this works well, but it takes a few extra steps. I'd make a high-res PDF out of the PM file, then pick apart the PDF to extract the graphics. Are the graphics raster or vector? If they're raster, you can use Acrobat's Touch-up Object tool to open them in Photoshop. If they're vector, you can open the PDF in Illustrator and save out the graphics from there.
    HTH

  • How to generate 300 DPI image from canvas using Imagesnapshot

    Hi all,
    I want to generate image from my canvas.
    I tried using bitmapdata and imagesnapshot.
    Bitmapdata has no property called DPI.
    Imagesnapshot allows to set DPI but it is not generating 300 dpi image.
    Any idea?

    You are in the Using iPhone forum. I will ask the hosts to move this to the iPad forum. However, I'm not aware of any setting change you can make to the cameras in the iPad or iPhone.

Maybe you are looking for