Unable to process Lossless JPEG Images..

Hi,
I have jdk 1.6.0. and i installed the jai-Imageio pakage.i am not able view the true lossless jpeg
image.
I tried to open a lossless jpeg image from the code given in
http://forums.sun.com/thread.jspa?forumID=20&threadID=335960
but the
image does not open. It works for jpeg, jpeg2000 images. but not
lossless jpeg and jpeg-ls images..
when i try to code
String s[] = ImageIO.getReaderFormatNames();
for(int i=0;i< s.length ;i++)
System.out.println(s);
it prints
raw
BMP
JPEG2000
RAW
jpeg
tif
jpeg2000
WBMP
GIF
TIF
TIFF
jpg
bmp
PNM
JPG
pnm
wbmp
png
JPEG
PNG
jpeg 2000
JPEG 2000
gif
tiff
if i try to load lossless jpeg image it shows the exception that
but when i write code like
CLibJPEGImageReaderSpi cl = new CLibJPEGImageReaderSpi();
String s[] = cl.getFormatNames();
for(int i=0;i< s.length ;i++)
System.out.println(s[i]);
it prints
jpeg
JPEG
jpg
JPG
jfif
JFIF
jpeg-lossless
JPEG-LOSSLESS
jpeg-ls
JPEG-LS
if i check with 'cl.canDecodeInput(imageInputStream)' it returns true.
i d't now how to load the image using 'CLibJPEGImageReaderSpi' class object
or is there any other way to load the image ?
can anybody write the full code to display the true lossless jpeg image
which is taken from dicom medical images. the images are available at
http://rapidshare.com/files/250911269/Lossless_jpeg.zip.html
is there any website has good tutorial about lossless jpeg image. what
is point transform in lossless jpeg ? what old pseudo lossless jpeg ?
what is equivalent for that in java ?

You can email me one of the Pics (zip it first) but it sounds like they are toast.

Similar Messages

  • Unable to Open Lossless JPEG Image

    Hi,
    I have jdk 1.6.0. and i installed the jai-Imageio pakage.i am not able view the true lossless jpeg
    image.
    I tried to open a lossless jpeg image from the code given in
    http://forums.sun.com/thread.jspa?forumID=20&threadID=335960
    but the
    image does not open. It works for jpeg, jpeg2000 images. but not
    lossless jpeg and jpeg-ls images..
    when i try to code
    String s[] = ImageIO.getReaderFormatNames();
    for(int i=0;i< s.length ;i++)
    System.out.println(s);
    it prints
    raw
    BMP
    JPEG2000
    RAW
    jpeg
    tif
    jpeg2000
    WBMP
    GIF
    TIF
    TIFF
    jpg
    bmp
    PNM
    JPG
    pnm
    wbmp
    png
    JPEG
    PNG
    jpeg 2000
    JPEG 2000
    gif
    tiff
    if i try to load lossless jpeg image it shows the exception that
    but when i write code like
    CLibJPEGImageReaderSpi cl = new CLibJPEGImageReaderSpi();
    String s[] = cl.getFormatNames();
    for(int i=0;i< s.length ;i++)
    System.out.println(s[i]);
    it prints
    jpeg
    JPEG
    jpg
    JPG
    jfif
    JFIF
    jpeg-lossless
    JPEG-LOSSLESS
    jpeg-ls
    JPEG-LS
    if i check with 'cl.canDecodeInput(imageInputStream)' it returns true.
    i d't now how to load the image using 'CLibJPEGImageReaderSpi' class object
    or is there any other way to load the image ?
    can anybody write the full code to display the true lossless jpeg image
    which is taken from dicom medical images. the images are available at
    http://rapidshare.com/files/250911269/Lossless_jpeg.zip.html
    is there any website has good tutorial about lossless jpeg image. what
    is point transform in lossless jpeg ? what old pseudo lossless jpeg ?
    what is equivalent for that in java ?

    There are two images in that zip file. I have no problems reading the one called "lossless.jpg". It's a 16-bit grayscale image that's completely black. The one called "test.jpg" throws an exception. Is this what you're getting? I'm using JAI-ImageIO 1.1
    is there any website has good tutorial about lossless jpeg image. what
    is point transform in lossless jpeg ? what old pseudo lossless jpeg ?
    what is equivalent for that in java ? In addition to describing normal jpeg encoding, the jpeg specification also describes what's called "lossless jpeg" encoding. Lossless jpegs - as described in the original specification - are obsolete. No common application can open them. It doesn't help that the png format (also lossless) provides much smaller file sizes then lossless jpeg's.
    Both of the jpegs in that zip file are lossless jpegs. Incidently, I can't open them up with Irfanview or Adobe Photoshop CS4 (wich says alot). And I can only read "lossless.jpg" with JAI-ImageIO while the other one throws an IOException. By using lossless jpegs, the user cripples portability.
    JPEG-LS is different from lossless jpeg. In fact, it was meant to replace lossless jpegs. While not actually lossless, jpeg-ls is described as a "near lossless" compression. I believe the files have a +.jls+ extension instead of a +.jpg+ one. While not obsolete (I think), JPEG-LS is not widely used. Using it can still cripple portability.
    The JPEG2000 format also has a "lossless" mode, that again, is not widely used. Using it can still cripple portability. JPEG2000 files have a +.jp2+ extension.
    Lastly, I don't know what you mean by this question
    what is point transform in lossless jpeg?PS: I have no problems reading a lossless jpeg or a jpeg-ls that I write with JAI-ImageIO. So maybe there's something wrong with "test.jpg" in the zip file?

  • Unable to open saved JPEG images

    I opened and modified several JPEG images with Photoshop CS2. Now none of these files can be opened by Photoshop or any other program. All of the files seem to have a non-zero size, but when I try to open them in Photoshop, it does not generate an error, it merely offers to create a new file with the same image properties (size, etc) as the saved image on disk.
    I've also tried several other programs to open these files, and none of them can open them. FYI, one thing that all of the files have in common is that they are all saved with the absolute minimum compression settings.
    Any assistance in helping me to recover these files would be greatly appreciated.
    Thanks.

    You can email me one of the Pics (zip it first) but it sounds like they are toast.

  • Unable to open saved edited jpeg image

    Not being the most techie type person, sorry if this is repeated in numerous place on the forum. I can see, and open, the images in thumbnail form in my 'Picture - Library'. I can then edit them in PE 10, but when I 'save as' (and I save as jpeg image with a version of IMG_****.jpeg copy ) the 'copy' jpeg thumbnail appears in the library as a blank page and no image. I'm then unable to open the 'saved' copy as it's the 'wrong type'. I've tried numerous images but to no avail. Any advice will be greatly appreciated.

    Change IMG_****.jpeg copy to IMG_****copy.jpeg

  • I am unable to import Raw still images from a Nikon D 80 into Premiere Pro cs 4. All jpeg images ok

    I am unable to Import RAW still Images from a Nikon D 80 camera into
    Premiere Pro. All jpeg images import Ok. A web search suggests I need "plug-ins" for RAW, but I can not find  same. Any suggestions as to how to inport RAW files to PP CS 4 would be appreciated. I have just updated from Premiere Elements 4 which had no problem importing RAW still images.
    Roygo

    The way I see it (correct me if I'm wrong) but Raw is supposed to be where you have total editing control of the shot (as opposed to the camera). I believe the next step is to do the editing (i.e. color balance, exposure, etc) then make a regular image from that to use in whatever output you desire (print, web, etc.) Think of raw as the negative. Just being in raw doesn't in it self make it better.
    Edit. This is from premiere help files....
    Supported still‑image and sequence file formats
    Adobe Premiere Pro supports 8-bit per-channel (4 bytes per pixel) and 16-bit per-channel (8 bytes per pixel) still-image files. It converts images with lower bit-depths to 8-bits per channel and images with higher bit-depths to 16-bits per channel on import. High bit-depth files are supported at one single-precision float per channel (16-bytes per pixel).
    AI, EPS (Adobe Illustrator and Illustrator sequence)
    BMP, DIB, RLE (Bitmap and Bitmap sequence)
    EPS
    GIF
    ICO (Icon File) (Windows only)
    JPEG and JPEG sequence (JPE, JPG, JFIF)
    PICT and PICT sequence (PIC, PCT)
    PNG (Portable Network Graphics)
    PSD (Adobe Photoshop and Photoshop sequence)
    PSQ (Adobe Premiere 6 Storyboard)
    PTL, PRTL (Adobe Premiere title)
    TGA, ICB, VDA, VST (Targa and Targa sequence)
    TIF (TIFF and TIFF sequence)

  • How to process and imbedded JPEG image data

    I am using a flowable XFA form . and i would like to embed some JPEG images in a subform.
    My form is working but I need this additional behavior/capability.
    Can you direct me to where i would find a good example of how to do it or to good documentation on this can be done or any combination of these two things. 
    thanks

    Hi,
    I am trying to understand what you are trying to achieve. If you want to embed a static image, then drag an "image" from the object library. If you want the user to be able to select (or change) the image, then insert an "image field" into your subform.
    For what it is worth, I have uploaded a basic PDF with a static image and a dynamic image field.
    If you are dictating the images then select "image" objects. If the user has input, then select "image field" objects.
    I cannot provide any direction to your second post. If you have the form working with "save as TIFF, I don't know how you would script additional parameters.
    Good luck,
    N.

  • Unable to display a PDF image on the page - Mac 10.6

    Hi,
    Running an iMac with 10.6.8 and Indesign 5.0.4. Just wanting to export a PDF as per usual via File > Export function. However, I keep getting the error message, "Unable to display a PDF image on the page'. No idea what this is and have never seen this error before. The only info on the internet reveals error code 0x2511(9489).
    I've deleted prefs, closed down and re-opened Indesign and even restarted the computer. I've also re-linked the images contained in the document and even created a new document and set it up the same, but still the same problem. Investigating further, other Indesign documents still export properly.
    The only ones that don't export are 2 documents, both giving this same error message. Both documents are ones where a client has sent a PDF, I've imported into two of these into an 2-page A4 Indesign document (each PDF is 48MB each) and then just added a text layer (using Times) which is properly installed on the computer. I basically have to 'update' course dates for the client and add PDF to the website, all very basic.
    I've tried importing a jpeg and other PDFs into the file (replacing the existing ones) and they export fine.
    All my software is legal and I've exported this document before now in exactly the same File > Export without any problems (under 10.5 and 10.6).
    OK... I've just imported the offending PDFs into Acrobat, optimized and shrunk the file size, re-imported back to Indesign and the PDF export works fine. So it seems InDesign / PDF Export doesn't like large imported PDFs? I think they were originally exported from Publisher, so maybe that's the problem or a file conflict somehow.
    Any ideas on the culprit? I've googled it, searched these forums and Apple discussions and haven't found anything. Although I've found a workaround, I do get large files to import and then export. Thanks for any help
    Steve

    It does sound like a problem with the original PDF files the client sent you. You can check how they were made in Acrobat Pro from the Additional MetaData button on the Description tab of the document properties dialog. It will be under Advanced at the bottom of the list when the metadata opens.
    You might be able to salvage them by running the optimzer and not changing the size, or just doing a Save As in Acrobat.

  • Generating a Movie File from a List of (JPEG) Images

    Hi All!
    I was trying this example:
    Generating a Movie File from a List of (JPEG) Images
    http://java.sun.com/products/java-media/jmf/2.1.1/solutions/JpegImagesToMovie.java
    I was using the following command line with the following output:
    root - /home/robertmarkbram/java/jmf/classes
    $java JpegImagesToMovie -w 320 -h 240 -f 1\
    -o file:///home/robertmarkbram/CoolCampus/media/jpgOut.mov\
    file:///BigBrain3/pics/breakfast.jpg\
    file:///BigBrain3/pics/eating.jpg\
    file:///BigBrain3/pics/howto.jpg\
    file:///BigBrain3/pics/jupiterp_cassini_full.jpg\
    file:///BigBrain3/pics/jupiterp_cassini.jpg\
    file:///BigBrain3/pics/spocamok.jpg- create processor for the image datasource ...
    Setting the track format to: JPEG
    - create DataSink for: file:///home/robertmarkbram/CoolCampus/media/jpgOut.mov
    start processing...
    - reading image file: file:///BigBrain3/pics/breakfast.jpg
    - reading image file: file:///BigBrain3/pics/eating.jpg
    - reading image file: file:///BigBrain3/pics/howto.jpg
    - reading image file: file:///BigBrain3/pics/jupiterp_cassini_full.jpg
    - reading image file: file:///BigBrain3/pics/jupiterp_cassini.jpg
    - reading image file: file:///BigBrain3/pics/spocamok.jpg
    Done reading all images.
    java.lang.NullPointerException
    at com.sun.media.multiplexer.video.QuicktimeMux.writeVideoSampleDescription(QuicktimeMux.java:936)
    at com.sun.media.multiplexer.video.QuicktimeMux.writeSTSD(QuicktimeMux.java:925)
    at com.sun.media.multiplexer.video.QuicktimeMux.writeSTBL(QuicktimeMux.java:905)
    at com.sun.media.multiplexer.video.QuicktimeMux.writeMINF(QuicktimeMux.java:806)
    at com.sun.media.multiplexer.video.QuicktimeMux.writeMDIA(QuicktimeMux.java:727)
    at com.sun.media.multiplexer.video.QuicktimeMux.writeTRAK(QuicktimeMux.java:644)
    at com.sun.media.multiplexer.video.QuicktimeMux.writeMOOV(QuicktimeMux.java:582)
    at com.sun.media.multiplexer.video.QuicktimeMux.writeFooter(QuicktimeMux.java:519)
    at com.sun.media.multiplexer.BasicMux.close(BasicMux.java:142)
    at com.sun.media.BasicMuxModule.doClose(BasicMuxModule.java:172)
    at com.sun.media.PlaybackEngine.doClose(PlaybackEngine.java:872)
    at com.sun.media.BasicController.close(BasicController.java:261)
    at com.sun.media.BasicPlayer.doClose(BasicPlayer.java:229)
    at com.sun.media.BasicController.close(BasicController.java:261)
    at JpegImagesToMovie.controllerUpdate(JpegImagesToMovie.java:215)
    at com.sun.media.BasicController.dispatchEvent(BasicController.java:1254)
    at com.sun.media.SendEventQueue.processEvent(BasicController.java:1286)
    at com.sun.media.util.ThreadedEventQueue.dispatchEvents(ThreadedEventQueue.java:65)
    at com.sun.media.util.ThreadedEventQueue.run(ThreadedEventQueue.java:92)
    Can anyone tell me what this error message means?
    Thanks for any advice!
    Rob
    :)

    I think it does that for QuickTime if you don't define the lineStride value in the VideoFormat (lineStride = pixelStride * width).

  • Help with managing RAW and jpeg images and installing iphoto 9

    Greetings: Fist, let me make the neophyte apology and plea - I'm sorry, I should have come here first; I didn't and now I need your help.
    I have just purchased a macbook pro (still in its box) with updated software for my older imac os x. I have a number of Canon related photo editing programs (that came with my 40D digital SLR) and Adobe photo elements 6 for mac on the imac. Following some erroneous advice I have made a complete mess of the pictures folder's content by trying to delete images directly from that folder (there are now 6000+ images in the folder, many of which are duplicates(?). Most of the images are not tagged or labeled and some have been organized in/by iphoto (I corrupted the iphoto's library structure very early on by disrupting and editing its images - which might explain why iphoto had a difficult time 'finding' and displaying some of my photos). The picture folder now holds jpegs, smallRAW images (a Canon 40D photo format) and various duplicates of the orignal images - (some of the duplicates don't display as images, but as jpeg logos, which, when opened contain duplicate image or are completely black) The first time I downloaded RAW images into iphoto 6 the RAW data displayed as a black image. When shooting in smallRAW on the Canon 40D, the camera produces a jpeg image for 'easy viewing and editing in the camera' but it looks as though iphoto 6 made duplicates of the jpeg and the RAW data and stored them in different locals in the picture file. In an attempt to get the number of images down, I have been trying to delete them from the picture folder. (My daughters both download images rather indiscriminately in hopes of 'editing them on the computer' which inevitably does not happen) and there is a lot of experimental bracketing of images - shooting raw and different Camera formats etc., all of which need to be cleaned up before I proceed.
    Sometime in the not-too-distant future I would like to have iphoto 9 running on my imac with a clean library of images and a seamless way of downloading, editing and storing images (including the RAW data).
    The macbook pro is for my highschool-aged daughter, who will run iphoto 9 but not have any RAW image data on her system. She would like to copy some of the old iMac's images to put into her own iPhoto 9 library (probably using a disk, email or on-line photo service - ideally, I would like to be able to copy and remove a number of those images from my HD and give them to her for the macbook)
    A few questions and queries: Can I 'dis-able' iphoto 6, while I delete images (RAW and jpeg) from the picture file? (and is this even a good idea).
    Once I have edited the # of images down to a reasonable size, should I re-launch iphoto 6, rebuild the iphoto library and then update to iphoto 9 or skip v6 and rebuild with v9?
    And now for the 'how stupid is this guy question' - I really had planned to purchase an external backup; but between new the macbook, car repairs and braces it has never come to fruition. So, I have never properly backed up my images. What is the bare-bones, least expensive method for me to do this? I'd even consider burning everything to disks if that works. I can't afford the $ to purchase a new external hard drive right now (really). Budget is set aside mid-November for one though.
    I've been looking through some other discussion boards and it looks like I'm not the only one having RAW image issues. I know that shooting smallRAW with the companion jpeg is probably not helping things but I take my camera equipment on extended canoe trips - and we like the ease of on-the-spot editing with this format.
    Thanks in advance for your help - Mark

    Terence, Is the picture folder the primary source for the images or does that data reside somewhere else?
    If you gathered them there, then yes.
    I really don't want to have to go through 14,000 images looking for the pictures that I want to keep (or is that my only option?).
    Only you can decide what you want to keep.
    Why does the computer keep making copies of the images and filing them under date and events?
    That's how iPhoto works. It's not a problem usually, only you did go in there and make a problem, and now we are trying to fix it.
    You advise not to muck around in the picture file via preview,
    No I don't. I advise not to much around in the iPhoto Library Folder.
    but if I download images through a program other than iPhotos - image capture or adobe aren't I doing that anyway?
    Adobe what? Adobe is a software manufacturer who make many excellent applications, you need to be more precise. And no, if you import photos with Image Capture or “adobe” no you are not interfering with the iPhoto Library Folder.
    Can you edit a base image file somewhere and remove it from the HD without iphoto making a copy of it and storing it somewhere else?
    This is stunningly easy. Don't use iPhoto. Use an image editor.
    I want to look the negatives, decide which ones I want and throw the rest away. Can that be done or am I way off course?
    Yes, and iPhoto (or similar apps) make this really easy.
    Hook up your camera. Import the pics to iPhoto. Go through the imported pics. Trash the ones you don't want. Then process the ones you do. But you must learn how to use iPhoto to do this successfully
    To trash: put the pic in the iPhoto trash and empty it. This removes the file from iPhoto and the Hard Disk.
    Process it: If you want to use another editor: You can set Photoshop (or any image editor) as an external editor in iPhoto. (Preferences -> General -> Edit Photo: Choose from the Drop Down Menu.) This way, when you double click a pic to edit in iPhoto it will open automatically in Photoshop or your Image Editor, and when you save it it's sent back to iPhoto automatically. This is the only way that edits made in another application will be displayed in iPhoto.
    Regards
    TD

  • Problem while executing the code( that covert jpeg images to movie)

    http://java.sun.com/products/java-media/jmf/2.1.1/solutions/JpegImagesToMovie.html
    here is the code:
    * @(#)JpegImagesToMovie.java     1.3 01/03/13
    * Copyright (c) 1999-2001 Sun Microsystems, Inc. All Rights Reserved.
    * Sun grants you ("Licensee") a non-exclusive, royalty free, license to use,
    * modify and redistribute this software in source and binary code form,
    * provided that i) this copyright notice and license appear on all copies of
    * the software; and ii) Licensee does not utilize the software in a manner
    * which is disparaging to Sun.
    * This software is provided "AS IS," without a warranty of any kind. ALL
    * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
    * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
    * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE
    * LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
    * OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS
    * LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
    * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
    * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF
    * OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE
    * POSSIBILITY OF SUCH DAMAGES.
    * This software is not designed or intended for use in on-line control of
    * aircraft, air traffic, aircraft navigation or aircraft communications; or in
    * the design, construction, operation or maintenance of any nuclear
    * facility. Licensee represents and warrants that it will not use or
    * redistribute the Software for such purposes.
    import java.io.*;
    import java.util.*;
    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;
    * This program takes a list of JPEG image files and convert them into
    * a QuickTime movie.
    public class JpegImagesToMovie3 implements ControllerListener, DataSinkListener {
    public boolean doIt(int width, int height, int frameRate, Vector inFiles, MediaLocator outML) {
         ImageDataSource ids = new ImageDataSource(width, height, frameRate, inFiles);
         Processor p;
         try {
         System.err.println("- create processor for the image datasource ...");
         p = Manager.createProcessor(ids);
         } catch (Exception e) {
         System.err.println("Yikes! Cannot create a processor from the data source.");
         return false;
         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 false;
         // 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 false;
         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 false;
         // Now, we'll need to create a DataSink.
         DataSink dsink;
         if ((dsink = createDataSink(p, outML)) == null) {
         System.err.println("Failed to create a DataSink for the given output MediaLocator: " + outML);
         return false;
         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 false;
         // Wait for EndOfStream event.
         waitForFileDone();
         // Cleanup.
         try {
         dsink.close();
         } catch (Exception e) {}
         p.removeControllerListener(this);
         System.err.println("...done processing.");
         return true;
    * Create the DataSink.
    DataSink createDataSink(Processor p, MediaLocator outML) {
         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: " + outML);
         dsink = Manager.createDataSink(ds, outML);
         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();
    public static void main(String args[]) {
         if (args.length == 0)
         prUsage();
         // Parse the arguments.
         int i = 0;
         int width = -1, height = -1, frameRate = 1;
         Vector inputFiles = new Vector();
         String outputURL = null;
         while (i < args.length) {
         if (args.equals("-w")) {
              i++;
              if (i >= args.length)
              prUsage();
              width = new Integer(args[i]).intValue();
         } else if (args[i].equals("-h")) {
              i++;
              if (i >= args.length)
              prUsage();
              height = new Integer(args[i]).intValue();
         } else if (args[i].equals("-f")) {
              i++;
              if (i >= args.length)
              prUsage();
              frameRate = new Integer(args[i]).intValue();
         } else if (args[i].equals("-o")) {
              i++;
              if (i >= args.length)
              prUsage();
              outputURL = args[i];
         } else {
              inputFiles.addElement(args[i]);
         i++;
         if (outputURL == null || inputFiles.size() == 0)
         prUsage();
         // Check for output file extension.
         if (!outputURL.endsWith(".mov") && !outputURL.endsWith(".MOV")) {
         System.err.println("The output file extension should end with a .mov extension");
         prUsage();
         if (width < 0 || height < 0) {
         System.err.println("Please specify the correct image size.");
         prUsage();
         // Check the frame rate.
         if (frameRate < 1)
         frameRate = 1;
         // Generate the output media locators.
         MediaLocator oml;
         if ((oml = createMediaLocator(outputURL)) == null) {
         System.err.println("Cannot build media locator from: " + outputURL);
         System.exit(0);
         JpegImagesToMovie3 imageToMovie3 = new JpegImagesToMovie3();
         imageToMovie3.doIt(width, height, frameRate, inputFiles, oml);
         System.exit(0);
    static void prUsage() {
         System.err.println("Usage: java JpegImagesToMovie -w <width> -h <height> -f <frame rate> -o <output URL> <input JPEG file 1> <input JPEG file 2> ...");
         System.exit(-1);
    * 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 JPEG 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, Vector images) {
         streams = new ImageSourceStream[1];
         streams[0] = new ImageSourceStream(width, height, frameRate, images);
         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 {
         Vector images;
         int width, height;
         VideoFormat format;
         int nextImage = 0;     // index of the next image to be read.
         boolean ended = false;
         public ImageSourceStream(int width, int height, int frameRate, Vector images) {
         this.width = width;
         this.height = height;
         this.images = images;
         format = new VideoFormat(VideoFormat.JPEG,
                        new Dimension(width, height),
                        Format.NOT_SPECIFIED,
                        Format.byteArray,
                        (float)frameRate);
         * We should never need to block assuming data are read from files.
         public boolean willReadBlock() {
         return false;
         * This is called from the Processor to read a frame worth
         * of video data.
         public void read(Buffer buf) throws IOException {
         // Check if we've finished all the frames.
         if (nextImage >= images.size()) {
              // We are done. Set EndOfMedia.
              System.err.println("Done reading all images.");
              buf.setEOM(true);
              buf.setOffset(0);
              buf.setLength(0);
              ended = true;
              return;
         String imageFile = (String)images.elementAt(nextImage);
         nextImage++;
         System.err.println(" - reading image file: " + imageFile);
         // 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();
         * 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;
    on executing with the command:
    java JpegImagesToMovie -w <width> -h <height> -f <frame rate per sec.> -o <output URL> <input JPEG file 1> <input JPEG file 2> ...
    comes this......
    Exception in thread"JMF thread:SendEventQueue:com.sun.media.processor.unknown Handler" java.lang.NullPointerException"
    plz help

    Don't forget to use the "Code Formatting Tags",
    see http://forum.java.sun.com/help.jspa?sec=formatting,
    so the posted code retains its original formatting.

  • How to make Photoshop save Aperture imported JPEG images as JPEGs

    Recently, I upgraded from Photoshop CS 5 to CS 5.1.
    My point and shoot cameras record in JPEG format. Often, I'll import those photos into Aperture and then tweak them in Photoshop using the Edit in External Editor command. My preferences for the external editor in Aperture were set to 8-bit, Photoshop
    With Photoshop CS 5, I would edit the photo and choose Save and the edited photo would be saved back to Aperture as a new version, in a JPEG format.
    Now, using Photoshop CS 5.1, when the imported image from Aperture is converted into a PSD file and when I save back to Aperture, I end up with a PSD file.
    How can I revert to how it was before? JPEG image in Aperture, opened in external editor Photoshop as a JPEG, edited in Photoshop, then saved back to Aperture as a new version JPEG?
    (Though this question is approached in this forum, a solution to my question is never found as each dicussion ends up going off-topic from the original question)

    clapperincus wrote:
    Any further ideas from anyone who's experienced trying to open a JPEG from Aperture in Photoshop as a JPEG?
    Like I said before, you cannot open a jpeg as a jpeg, the file must be decompressed to open in PS or in Aperture, and that has always been the case.
    I do not know how it used to work, but I tested and you are correct that with PS 12.1 and with Aperture 3.2.2 a JPEG sent to open in external editor (PS) is opened into your choice of lossless format and then goes back to Aperture in the lossless format you chose.
    IMO this is the way it should be, because every save into JPEG loses image data, so such saves should be limited to the final export, in this case when the image actually leaves Aperture. If the file was compressed as a JPEG  when leaving PS, decompressed and edited in Aperture, then compressed again to export as JPEG from Aperture, unnecessary additional image data loss would occur.
    It is always better to save the application of lossy compression until the very last step in a workflow because other usages (printing, for instance) may occur before applying the lossy compression.
    -Allen

  • Lose Jpeg images when editing an existing PDF Form in Acrobat X - All other edits update OK

    Have just upgraded to Acrobat X and am having problems trying to update an existing PDF Form which includes jpeg images.    After all edits are done and I save, previewing the PDF identifies that all of the existing jpeg images within the form no longer display.  Unable to figure out what to do to retain these images from the existing PDF.

    Hi,
    Based on your other post, the original form was developed in LiveCycle Designer. Therefore you would need to edit the form in LC Designer, to reestablish the link to the image files.
    Niall

  • Problem displaying CMYK jpeg images

    I have a problem with a CMYK jpeg image.
    I know that about supported JPEGs in JRE - JCS_CMYK and JCS_YCCK are not supported directly.
    And I found here how to load the image:
    http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4799903
    http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5100094
    I used both the suggestions described to load it, but when the image is displayed the colors are wrong, are very different from the one displayed in PhotoShop, for example.
    Any suggestion are very appreciated. If it's necessary i can send you the image.
    Roberto
    Here is the code
    package com.cesarer.example.crop;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.image.*;
    import java.io.*;
    import java.util.Iterator;
    import javax.imageio.ImageIO;
    import javax.imageio.ImageReader;
    import javax.imageio.stream.ImageInputStream;
    import javax.swing.*;
    import javax.swing.event.MouseInputAdapter;
    public class CroppingRaster extends JPanel
        BufferedImage image;
        Dimension size;
        Rectangle clip;
        boolean showClip;
        public CroppingRaster(BufferedImage image)
            this.image = image;
            size = new Dimension(image.getWidth(), image.getHeight());
            showClip = false;
        protected void paintComponent(Graphics g)
            super.paintComponent(g);
            Graphics2D g2 = (Graphics2D)g;
            g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                                RenderingHints.VALUE_ANTIALIAS_ON);
            int x = (getWidth() - size.width)/2;
            int y = (getHeight() - size.height)/2;
            g2.drawImage(image, x, y, this);
            if(showClip)
                if(clip == null)
                    createClip();
                g2.setPaint(Color.red);
                g2.draw(clip);
        public void setClip(int x, int y)
            // keep clip within raster
            int x0 = (getWidth() - size.width)/2;
            int y0 = (getHeight() - size.height)/2;
            if(x < x0 || x + clip.width  > x0 + size.width ||
               y < y0 || y + clip.height > y0 + size.height)
                return;
            clip.setLocation(x, y);
            repaint();
        public Dimension getPreferredSize()
            return size;
        private void createClip()
            clip = new Rectangle(140, 140);
            clip.x = (getWidth() - clip.width)/2;
            clip.y = (getHeight() - clip.height)/2;
        private void clipImage()
            BufferedImage clipped = null;
            try
                int w = clip.width;
                int h = clip.height;
                int x0 = (getWidth()  - size.width)/2;
                int y0 = (getHeight() - size.height)/2;
                int x = clip.x - x0;
                int y = clip.y - y0;
                clipped = image.getSubimage(x, y, w, h);
            catch(RasterFormatException rfe)
                System.out.println("raster format error: " + rfe.getMessage());
                return;
            JLabel label = new JLabel(new ImageIcon(clipped));
            JOptionPane.showMessageDialog(this, label, "clipped image",
                                          JOptionPane.PLAIN_MESSAGE);
        private JPanel getUIPanel()
            final JCheckBox clipBox = new JCheckBox("show clip", showClip);
            clipBox.addActionListener(new ActionListener()
                public void actionPerformed(ActionEvent e)
                    showClip = clipBox.isSelected();
                    repaint();
            JButton clip = new JButton("clip image");
            clip.addActionListener(new ActionListener()
                public void actionPerformed(ActionEvent e)
                    clipImage();
            JPanel panel = new JPanel();
            panel.add(clipBox);
            panel.add(clip);
            return panel;
        public static void main(String[] args) throws IOException
             File file = new File("src/ABWRACK_4C.jpg");
             // Find a JPEG reader which supports reading Rasters.
            Iterator readers = ImageIO.getImageReadersByFormatName("JPEG");
            ImageReader reader = null;
            while(readers.hasNext()) {
                reader = (ImageReader)readers.next();
                if(reader.canReadRaster()) {
                    break;
         // Set the input.
            ImageInputStream input =
                ImageIO.createImageInputStream(file);
            reader.setInput(input);
            Raster raster = reader.readRaster(0, null);
             BufferedImage bi = new BufferedImage(raster.getWidth(),
                    raster.getHeight(),
                    BufferedImage.TYPE_4BYTE_ABGR);
             // Set the image data.
             bi.getRaster().setRect(raster);
            // Cropping test = new Cropping(ImageIO.read(file));
             CroppingRaster test = new CroppingRaster(bi);
            ClipMoverRaster mover = new ClipMoverRaster(test);
            test.addMouseListener(mover);
            test.addMouseMotionListener(mover);
            JFrame f = new JFrame();
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.getContentPane().add(new JScrollPane(test));
            f.getContentPane().add(test.getUIPanel(), "South");
            f.setSize(400,400);
            f.setLocation(200,200);
            f.setVisible(true);
    class ClipMoverRaster extends MouseInputAdapter
        CroppingRaster cropping;
        Point offset;
        boolean dragging;
        public ClipMoverRaster(CroppingRaster c)
            cropping = c;
            offset = new Point();
            dragging = false;
        public void mousePressed(MouseEvent e)
            Point p = e.getPoint();
            if(cropping.clip.contains(p))
                offset.x = p.x - cropping.clip.x;
                offset.y = p.y - cropping.clip.y;
                dragging = true;
        public void mouseReleased(MouseEvent e)
            dragging = false;
        public void mouseDragged(MouseEvent e)
            if(dragging)
                int x = e.getX() - offset.x;
                int y = e.getY() - offset.y;
                cropping.setClip(x, y);
    }

    The loading process It takes about 10 seconds, and every repaint it takes the same time.The painting yes, the loading no. It shouldn't take much more time to load the image then an ordinary JPEG. In particular, your now using a "natively accelerated" JPEG image reader, so it should take less time on average to load any JPEG. 10 seconds is absurd. Are you sure your not including the drawing time in that figure?
    - Another problem: JAI-ImageIO is not available for MAC OS X platform.This is somewhat true. You can take the imageio.jar file and package it together with your program (adding it to the class path). This will give you most of the functionality of JAI-ImageIO; in particular the TIFFImageReader. You just won't be able to use the two natively accelerated ImageReaders that comes with installing.
    Right now, you're using the accelerated CLibJPEGImageReader to read the image. You can't use this image reader on the MAC, so you have to take the approach mentioned in the 2nd bug report you originally posted (i.e. use an arbitrary CMYK profile).
    The conversion is too long more than 30 seconds.The code you posted could be simplified to
    BufferedImage rgbImage = new BufferedImage(w,h,
                BufferedImage.3_BYTE_BGR);
    ColorConvertOp op = new ColorConvertOp(null);
    op.filter(cmykImage,rgbImage);But again, 30 seconds is an absurd value. After a little preparation, converting from one ICC_Profile to another is essentially a look up operation. What does,
    System.out.println(cmykImage.getColorModel().getColorSpace());print out? If it's not an instance of ICC_ColorSpace, then I can understand the 30 seconds. If it is, then something is dreadfully wrong.
    the RGB bufferedImage that i get after the transformation when it is displayed is much more brightThis is the "one last problem that pops up" that I hinted at. It's because some gamma correction is going on in the background. I have a solution, but it's programming to the implementation of the ColorConvertOp class and not the API. So I'm not sure about its portability between java versions or OS's.
    import javax.swing.*;
    import java.awt.color.ICC_ColorSpace;
    import java.awt.color.ICC_Profile;
    import java.awt.image.BufferedImage;
    import java.awt.image.ColorConvertOp;
    import javax.imageio.ImageIO;
    import java.io.File;
    public class CMYKTest {
         public static void main(String[] args) throws Exception{
            long beginStamp, endStamp;
            //load image
            beginStamp = System.currentTimeMillis();
            BufferedImage img = ImageIO.read(/*cmyk image file*/);
            endStamp = System.currentTimeMillis();
            System.out.println("Time to load image: " + (endStamp-beginStamp));
            //color convert
            BufferedImage dest = new BufferedImage(img.getWidth(),
                                                   img.getHeight(),
                                                   BufferedImage.TYPE_3BYTE_BGR);
            beginStamp = System.currentTimeMillis();
            sophisticatedColorConvert(img,dest);
            endStamp = System.currentTimeMillis();
            System.out.println("Time to color convert: " + (endStamp-beginStamp));
            //display
            JFrame frame = new JFrame();
            frame.setContentPane(new JScrollPane(new JLabel(new ImageIcon(dest))));
            frame.setSize(500,500);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible(true);
        public static BufferedImage sophisticatedColorConvert(BufferedImage src,
                                                              BufferedImage dst) {
            ICC_ColorSpace srcCS =
                    (ICC_ColorSpace) src.getColorModel().getColorSpace();
            ICC_Profile srcProf = srcCS.getProfile();
            byte[] header = srcProf.getData(ICC_Profile.icSigHead);
            intToBigEndian(ICC_Profile.icSigInputClass,header,12);
            srcProf.setData(ICC_Profile.icSigHead,header);
            ColorConvertOp op = new ColorConvertOp(null);
            return op.filter(src, dst);
        private static void intToBigEndian(int value, byte[] array, int index) {
                array[index]   = (byte) (value >> 24);
                array[index+1] = (byte) (value >> 16);
                array[index+2] = (byte) (value >>  8);
                array[index+3] = (byte) (value);
    }

  • Improve quality of JPEG images

    Hi
    I have an application which saves images in JPEG format after editing (well, many applications does that, but this is only a fraction of what this application does) :-)
    I can't use any other formats due to size restrictions. The problem is Image Editing module of this application has operations like line drawing and text inserting. When I save the image, fine lines (especially texts) are getting blurred.
    Is there any way I can increase the quality of JPEG files saved? I understand that JPEG is not meant for sharp lines and texts but with Photoshop, even fine lines and texts appear good when saved as a high quality JPEG file. Is there any such method in Java by which I can increase the quality of JPEG images?
    Thanks in advance...

    Is there any way I can increase the quality of JPEG files saved? I understand that JPEG is not meant for sharp lines and texts but with Photoshop, even fine lines and texts appear good when saved as a high quality JPEG file. Is there any such method in Java by which I can increase the quality of JPEG images?I JPEG is a non-conservative compression format (you do not get back exactly what you put in, it has "acceptable degredaton"--I talked with the author before it became popular and he explained what JPEG was all about--high compresses resulting in a small size for internet communications over dialup.
    In more recent times I've seen quality factors brought into play with JPEG, but as you have stated, even in Adobe Photoshop under the highest quality, you still have degradation. I've seen some hint and some state that you can get a lossless JPEG, but I've not encountered it yet.
    In any case, if you do find a "lossless JPEG" the size of that file is going to be bigger than you are looking at now. You may consider other file formats--TIFF or there are even more recent files formats that have higher conservative compression algorithms.

  • Is there a reliable way to determine if the content of a page is a jpeg image?

    I have a need to readily detect that the content of a particular page is a JPEG image.......
    Is there a way to ascertain this as I am processing each page ?

    I see - something more like the following code ? -
    Thanks Leonard - I can see that this will take a while but - it is good to know that I am on the right path to start out.
    I suppose that I can use the dump type to see what a jpeg looks like , etc.
    Thanks again .
    AVDoc avDoc = AVAppGetActiveDoc();
    AVPageView pageView = AVDocGetPageView(avDoc);
    PDPageNumber pageNum = AVPageViewGetPageNum(pageView);
    /* Bridge method to PD doc*/
    PDDoc pdDoc = AVDocGetPDDoc(avDoc);
    /* Acquire current page */
    PDPage pdPage = PDDocAcquirePage(pdDoc, pageNum);
    PDEContent pdeContent = PDPageAcquirePDEContent(pdPage, gExtensionID);
    //Declare a PDEElement object
    PDEElement pdeElement;
    //Get the number of elements in the PDEContent object
    ASInt32 eleNum =  PDEContentGetNumElems(pdeContent);
    //Get each element in the PDEContent object
    for (int j=0; j<eleNum; j++){
         pdeElement = PDEContentGetElem(pdeContent, j);
    //Determine if the element is a the type that we are looking for     if (PDEObjectGetType((PDEObject)pdeElement) == MatchingType
         //Perform a required action

Maybe you are looking for

  • Help me i've got a problem with my cpu speed

    I have bought prince of persia 2 and after the installation i want launch it but it indicates me I haven't the minimal configuration for the cpu speed(it's indicated 800mhz) my config: k8n neo platinum amd 64 2800+ (fsb 200mhz and multiplier 9x in th

  • Where can I buy a AC Adapter PS for my BEFW11S4 v2?

    Where can I buy an AC-DC power Adapter for my BEFW11S4 v2? The specs are 120V / 60 Hz input, +5 VDC / 2500 mA output.

  • PI node with recursive mapping

    Hi, Not sure if this is possible but thought I would ask the experts. I have a an IDOC --> XML mapping for orders scenario where  our Products have multiple BOM levels, and our target mapping should have all the BOMs collected under the parent produc

  • Reset waste ink counter on Epson730 on Mac10.7.5?

    Using my Mac 10.7.5, does anyone know of a download that will reset the waste ink counter on my Epson Artisan 730 printer.  I have changed the waste ink pads, but my 730 printer has locked me out until I change the waste ink counter back to 0.  The p

  • Unable to "Create New Instance"

    I'm using the admin server provided with iPlanet 5.1SP2 to manage an iPlanet 5.1 and a Netscape 4.16 directories. They've been up and running for several months now with very little downtime. I need to create another instance of iPlanet 5.1 on this m