Errors in code that captures images from webcam

Here is the code
import javax.swing.*;
import javax.swing.border.*;
import java.io.*;
import javax.media.*;
import javax.media.datasink.*;
import javax.media.format.*;
import javax.media.protocol.*;
import javax.media.util.*;
import javax.media.control.*;
import java.util.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;
import com.sun.image.codec.jpeg.*;
// import com.sun.media.vfw.VFWCapture; // JMF 2.1.1c version
import com.sun.media.protocol.vfw.VFWCapture; // JMF 2.1.1e version
public class JWebCam extends JFrame
implements WindowListener, ComponentListener
protected final static int MIN_WIDTH = 320;
protected final static int MIN_HEIGHT = 240;
protected static int shotCounter = 1;
protected JLabel statusBar = null;
protected JPanel visualContainer = null;
protected Component visualComponent = null;
protected JToolBar toolbar = null;
protected MyToolBarAction formatButton = null;
protected MyToolBarAction captureButton = null;
protected Player player = null;
protected CaptureDeviceInfo webCamDeviceInfo = null;
protected MediaLocator ml = null;
protected Dimension imageSize = null;
protected FormatControl formatControl = null;
protected VideoFormat currentFormat = null;
protected Format[] videoFormats = null;
protected MyVideoFormat[] myFormatList = null;
protected boolean initialised = false;
* Constructor
public JWebCam ( String frameTitle )
super ( frameTitle );
try
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
catch ( Exception cnfe )
System.out.println ("Note : Cannot load look and feel settings");
setSize ( 320, 260 ); // default size...
addWindowListener ( this );
addComponentListener ( this );
getContentPane().setLayout ( new BorderLayout() );
visualContainer = new JPanel();
visualContainer.setLayout ( new BorderLayout() );
getContentPane().add ( visualContainer, BorderLayout.CENTER );
statusBar = new JLabel ("");
statusBar.setBorder ( new EtchedBorder() );
getContentPane().add ( statusBar, BorderLayout.SOUTH );
* Initialise
* @returns true if web cam is detected
public boolean initialise ( )
throws Exception
return ( initialise ( autoDetect() ) );
* Initialise
* @params _deviceInfo, specific web cam device if not autodetected
* @returns true if web cam is detected
public boolean initialise ( CaptureDeviceInfo _deviceInfo )
throws Exception
statusBar.setText ( "Initialising...");
webCamDeviceInfo = _deviceInfo;
if ( webCamDeviceInfo != null )
statusBar.setText ( "Connecting to : " + webCamDeviceInfo.getName() );
try
setUpToolBar();
getContentPane().add ( toolbar, BorderLayout.NORTH );
ml = webCamDeviceInfo.getLocator();
if ( ml != null )
player = Manager.createRealizedPlayer ( ml );
if ( player != null )
player.start();
formatControl = (FormatControl)player.getControl ( "javax.media.control.FormatControl" );
videoFormats = webCamDeviceInfo.getFormats();
visualComponent = player.getVisualComponent();
if ( visualComponent != null )
visualContainer.add ( visualComponent, BorderLayout.CENTER );
myFormatList = new MyVideoFormat[videoFormats.length];
for ( int i=0; i<videoFormats.length; i++ )
myFormatList = new MyVideoFormat ( (VideoFormat)videoFormats );
Format currFormat = formatControl.getFormat();
if ( currFormat instanceof VideoFormat )
currentFormat = (VideoFormat)currFormat;
imageSize = currentFormat.getSize();
visualContainer.setPreferredSize ( imageSize );
setSize ( imageSize.width, imageSize.height + statusBar.getHeight() + toolbar.getHeight() );
else
System.err.println ("Error : Cannot get current video format");
invalidate();
pack();
return ( true );
else
System.err.println ("Error : Could not get visual component");
return ( false );
else
System.err.println ("Error : Cannot create player");
statusBar.setText ( "Cannot create player" );
return ( false );
else
System.err.println ("Error : No MediaLocator for " + webCamDeviceInfo.getName() );
statusBar.setText ( "No Media Locator for : " + webCamDeviceInfo.getName() );
return ( false );
catch ( IOException ioEx )
statusBar.setText ( "Connecting to : " + webCamDeviceInfo.getName() );
return ( false );
catch ( NoPlayerException npex )
statusBar.setText ("Cannot create player");
return ( false );
catch ( CannotRealizeException nre )
statusBar.setText ( "Cannot realize player");
return ( false );
else
return ( false );
* Dynamically create menu items
* @returns the device info object if found, null otherwise
public void setFormat ( VideoFormat selectedFormat )
if ( formatControl != null )
player.stop();
imageSize = selectedFormat.getSize();
formatControl.setFormat ( selectedFormat );
player.start();
statusBar.setText ( "Format : " + selectedFormat );
currentFormat = selectedFormat;
visualContainer.setPreferredSize ( currentFormat.getSize() );
setSize ( imageSize.width, imageSize.height + statusBar.getHeight() + toolbar.getHeight() );
else
System.out.println ("Visual component not an instance of FormatControl");
statusBar.setText ( "Visual component cannot change format" );
public VideoFormat getFormat ( )
return ( currentFormat );
protected void setUpToolBar ( )
toolbar = new JToolBar();
// Note : If you supply the 16 x 16 bitmaps then you can replace
// the commented line in the MyToolBarAction constructor
formatButton = new MyToolBarAction ( "Resolution", "BtnFormat.jpg" );
captureButton = new MyToolBarAction ( "Capture", "BtnCapture.jpg" );
toolbar.add ( formatButton );
toolbar.add ( captureButton );
getContentPane().add ( toolbar, BorderLayout.NORTH );
protected void toolbarHandler ( MyToolBarAction actionBtn )
if ( actionBtn == formatButton )
Object selected = JOptionPane.showInputDialog (this,
"Select Video format",
"Capture format selection",
JOptionPane.INFORMATION_MESSAGE,
null, // Icon icon,
myFormatList, // videoFormats,
currentFormat );
if ( selected != null )
setFormat ( ((MyVideoFormat)selected).format );
else if ( actionBtn == captureButton )
Image photo = grabFrameImage ( );
if ( photo != null )
MySnapshot snapshot = new MySnapshot ( photo, new Dimension ( imageSize ) );
else
System.err.println ("Error : Could not grab frame");
* autoDetects the first web camera in the system
* searches for video for windows ( vfw ) capture devices
* @returns the device info object if found, null otherwise
public CaptureDeviceInfo autoDetect ( )
Vector list = CaptureDeviceManager.getDeviceList ( null );
CaptureDeviceInfo devInfo = null;
if ( list != null )
String name;
for ( int i=0; i<list.size(); i++ )
devInfo = (CaptureDeviceInfo)list.elementAt ( i );
name = devInfo.getName();
if ( name.startsWith ("vfw:") )
break;
if ( devInfo != null && devInfo.getName().startsWith("vfw:") )
return ( devInfo );
else
for ( int i = 0; i < 10; i++ )
try
name = VFWCapture.capGetDriverDescriptionName ( i );
if (name != null && name.length() > 1)
devInfo = com.sun.media.protocol.vfw.VFWSourceStream.autoDetect ( i );
if ( devInfo != null )
return ( devInfo );
catch ( Exception ioEx )
// ignore errors detecting device
statusBar.setText ( "AutoDetect failed : " + ioEx.getMessage() );
return ( null );
else
return ( null );
* deviceInfo
* @note outputs text information
public void deviceInfo ( )
if ( webCamDeviceInfo != null )
Format[] formats = webCamDeviceInfo.getFormats();
if ( ( formats != null ) && ( formats.length > 0 ) )
for ( int i=0; i<formats.length; i++ )
Format[] aFormat = formats;
if ( aFormat[i] instanceof VideoFormat )
Dimension dim = ((VideoFormat)aFormat).getSize();
// System.out.println ("Video Format " + i + " : " + formats.getEncoding() + ", " + dim.width + " x " + dim.height );
else
System.out.println ("Error : No web cam detected");
* grabs a frame's buffer from the web cam / device
* @returns A frames buffer
public Buffer grabFrameBuffer ( )
if ( player != null )
FrameGrabbingControl fgc = (FrameGrabbingControl)player.getControl ( "javax.media.control.FrameGrabbingControl" );
if ( fgc != null )
return ( fgc.grabFrame() );
else
System.err.println ("Error : FrameGrabbingControl is null");
return ( null );
else
System.err.println ("Error : Player is null");
return ( null );
* grabs a frame's buffer, as an image, from the web cam / device
* @returns A frames buffer as an image
public Image grabFrameImage ( )
Buffer buffer = grabFrameBuffer();
if ( buffer != null )
// Convert it to an image
BufferToImage btoi = new BufferToImage ( (VideoFormat)buffer.getFormat() );
if ( btoi != null )
Image image = btoi.createImage ( buffer );
if ( image != null )
return ( image );
else
System.err.println ("Error : BufferToImage cannot convert buffer");
return ( null );
else
System.err.println ("Error : cannot create BufferToImage instance");
return ( null );
else
System.out.println ("Error : Buffer grabbed is null");
return ( null );
* Closes and cleans up the player
public void playerClose ( )
if ( player != null )
player.close();
player.deallocate();
player = null;
public void windowClosing ( WindowEvent e )
playerClose();
System.exit ( 1 );
public void componentResized ( ComponentEvent e )
Dimension dim = getSize();
boolean mustResize = false;
if ( dim.width < MIN_WIDTH )
dim.width = MIN_WIDTH;
mustResize = true;
if ( dim.height < MIN_HEIGHT )
dim.height = MIN_HEIGHT;
mustResize = true;
if ( mustResize )
setSize ( dim );
public void windowActivated ( WindowEvent e ) { }
public void windowClosed ( WindowEvent e ) { }
public void windowDeactivated ( WindowEvent e ) { }
public void windowDeiconified ( WindowEvent e ) { }
public void windowIconified ( WindowEvent e ) { }
public void windowOpened ( WindowEvent e ) { }
public void componentHidden(ComponentEvent e) { }
public void componentMoved(ComponentEvent e) { }
public void componentShown(ComponentEvent e) { }
protected void finalize ( ) throws Throwable
playerClose();
super.finalize();
class MyToolBarAction extends AbstractAction
public MyToolBarAction ( String name, String imagefile )
// Note : Use version this if you supply your own toolbar icons
// super ( name, new ImageIcon ( imagefile ) );
super ( name );
public void actionPerformed ( ActionEvent event )
toolbarHandler ( this );
class MyVideoFormat
public VideoFormat format;
public MyVideoFormat ( VideoFormat _format )
format = _format;
public String toString ( )
Dimension dim = format.getSize();
return ( format.getEncoding() + " [ " + dim.width + " x " + dim.height + " ]" );
class MySnapshot extends JFrame
protected Image photo = null;
protected int shotNumber;
public MySnapshot ( Image grabbedFrame, Dimension imageSize )
super ( );
shotNumber = shotCounter++;
setTitle ( "Photo" + shotNumber );
photo = grabbedFrame;
setDefaultCloseOperation ( WindowConstants.DISPOSE_ON_CLOSE );
int imageHeight = photo.getWidth ( this );
int imageWidth = photo.getHeight ( this );
setSize ( imageSize.width, imageSize.height );
final FileDialog saveDialog = new FileDialog ( this, "Save JPEG", FileDialog.SAVE );
final JFrame thisCopy = this;
saveDialog.setFile ( "Photo" + shotNumber );
addWindowListener ( new WindowAdapter()
public void windowClosing ( WindowEvent e )
saveDialog.show();
String filename = saveDialog.getFile();
if ( filename != null )
if ( saveJPEG ( filename ) )
JOptionPane.showMessageDialog ( thisCopy, "Saved " + filename );
setVisible ( false );
dispose();
else
JOptionPane.showMessageDialog ( thisCopy, "Error saving " + filename );
else
setVisible ( false );
dispose();
setVisible ( true );
public void paint ( Graphics g )
g.drawImage ( photo, 0, 0, getWidth(), getHeight(), this );
* Saves an image as a JPEG
* @params the image to save
* @params the filename to save the image as
public boolean saveJPEG ( String filename )
boolean saved = false;
BufferedImage bi = new BufferedImage ( photo.getWidth(null),
photo.getHeight(null),
BufferedImage.TYPE_INT_RGB );
Graphics2D g2 = bi.createGraphics();
g2.drawImage ( photo, null, null );
FileOutputStream out = null;
try
out = new FileOutputStream ( filename );
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder ( out );
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam ( bi );
param.setQuality ( 1.0f, false ); // 100% high quality setting, no compression
encoder.setJPEGEncodeParam ( param );
encoder.encode ( bi );
out.close();
saved = true;
catch ( Exception ex )
System.out.println ("Error saving JPEG : " + ex.getMessage() );
return ( saved );
} // of MySnapshot
public static void main (String[] args )
try
JWebCam myWebCam = new JWebCam ( "TimeSlice Web Cam Capture" );
myWebCam.setVisible ( true );
if ( !myWebCam.initialise() )
System.out.println ("Web Cam not detected / initialised");
catch ( Exception ex )
ex.printStackTrace();
when I run it I get the following errors
BufferToImage cannot convert buffer
could not grab frame
pls help

Do you expect anyone to read this?
http://forum.java.sun.com/help.jspa?sec=formatting
By the way, you have a condition that makes it print those messages. Check why that condiiton isn't rue.

Similar Messages

  • Code to capture image through webcam..

    hi.. im doing final year engineering.. rite now in project works n so i need a complete code in java to capture image through webcam..
    can anybody pls help me in this...
    thanks in advance..

    can anybody suggest me on this coding n get me a full pharse of this program ready for execution....
    think tis will b a easiest way to capture an image through webcam...!
    INCOMPLETE PROGRAM :
    ```````````````````````````````````
    CaptureDeviceInfo deviceInfo = CaptureDeviceManager.getDevice("vfw:Microsoft WDM Image Capture (Win32):0");
    Player player = Manager.createRealizedPlayer(deviceInfo.getLocator());
    player.start();
    // Wait a few seconds for camera to initialise (otherwise img==null)
    Thread.sleep(2000);
    //take image from camera
    FrameGrabbingControl frameGrabber = (FrameGrabbingControl)player.getControl("javax.media.control.FrameGrabbingControl");
    Buffer buf = frameGrabber.grabFrame();
    Image img1 = (new BufferToImage((VideoFormat)buf.getFormat()).createImage(buf));
    then you can save image as image.jpg into buffer your computer
    code:
    BufferedImage buffImg = new BufferedImage(img1.getWidth(null), img1.getHeight(null), BufferedImage.TYPE_INT_RGB);
    Graphics2D g2D = buffImg.createGraphics();
    g2D.drawImage(img1, null, null);
    g2D.setColor(Color.RED);
    g2D.setFont(new Font("Verdana",Font.BOLD,16));
    g2D.drawString((new Date()).toString(),10,25);
    g2D.dispose();
    ImageIO.write(buffImg,"jpg",new File("../Test/Webcam/Webcam" + " " + Params.Num + ".jpg"));

  • Capturing image from Webcam

    Hi,
    Is there any way in which Java can be used to capture images from the webcam and save it to a predefined image file name?
    Any examples out there?
    Alternatively, I could have the application written in other languages, but still, I would need my main Java app to launch this external app.
    Thanks alot.

    Hi,
    Is there any way in which Java can be used to capture
    images from the webcam and save it to a predefined
    image file name?
    Any examples out there?
    Alternatively, I could have the application written in
    other languages, but still, I would need my main Java
    app to launch this external app.
    Thanks alot.Yes, the ExampleSave from the JavaTwain package at http://www.gnome.sk does this job :)
    If you just want to see how Java Twain works with your webcam (works with a scanner too):
    - java (1.2 or higher for Windows, 1.3 or higher for Mac OS X) has to be installed on your computer
    - a scanner or camera has to be installed on your computer
    - download the trial package from http://www.gnome.sk
    - unzipp it
    - go to the examples directory of the unzipped package
    - in Windows: doubleclick the runExampleShow.bat
    - in MacOS:
        - open the Terminal window
        - change the working directory to the examples
        - run .sh file (type ExampleShow.sh or sh ExampleShow.sh)
    This will pop up the Twain Source Selection user interface. There, all your scanners and cameras which do have a twain driver should be listed. (About 90% of scanners and cameras on the market do have a twain driver for Windows, only a few do have a twain driver for MacOS.) Select one of them. The user interface of the selected scanner (camera) will appear. Confirm the scanning (you can set the scanning parameters first). The scanned image will be displayed in a separate window. To end the application, close that window.
    Running different examples, you can test scanning with hidden UI, saving the scanned image, using ADF, ...
    If there is any problem, do not hesitate to inquire about it at the technical support, email: [email protected] . I am the member of the staff :)
    Erika Kupkova

  • When capturing images from a Nikon D600, they show in Bridge, but when clicked to load into CS6,an error message says that it is the wrong type of document, even jpeg files. This is a NEW frustration.

    When capturing images from a Nikon D600, they show in Bridge, but when clicked to load into CS6,an error message says that it is the wrong type of document, evne jpeg files. This is a NEW frustration.

    Nikon raw files would open up in Adobe Camera Raw and so should jpegs.
    If you select one in Bridge and give the command "Ctrl r" (Windows), what happens?
    Also what is the version of ACR in the title bar?
    Gene
    Note: unmark your question as "answered". the green balloon next to the subject shows it as "solved".

  • Problem with capture image from wc

    hi all, i want to capture image from my webcam and play it, but it's not work
    please help me, here's code
    public class Demo extends JFrame {
          * @param args
         public static void main(String[] args) {
              // TODO Auto-generated method stub
              Demo demo = new Demo();
         public Demo() {
              super();
              int a=30;
              final JPanel panel = new JPanel();
              getContentPane().add(panel, BorderLayout.CENTER);
              setVisible(true);
              DataSource dataSource = null;
              PushBufferStream pbs;
              Vector deviceList = CaptureDeviceManager.getDeviceList(new VideoFormat(null));
              CaptureDeviceInfo deviceInfo=null;boolean VideoFormatMatch=false;
              for(int i=0;i<deviceList.size();i++) {
              // search for video device
              deviceInfo = (CaptureDeviceInfo)deviceList.elementAt(i);
              if(deviceInfo.getName().indexOf("vfw:/")<0)continue;
              VideoFormat videoFormat=new VideoFormat("YUV");
              System.out.println("Format: "+ videoFormat.toString());
              Dimension size= videoFormat.getSize();
              panel.setSize(size.width,size.height);
              MediaLocator loc = deviceInfo.getLocator();
              try {
                   dataSource = (DataSource) Manager.createDataSource(loc);
                   // dataSource=Manager.createCloneableDataSource(dataSource);
                   } catch(Exception e){}
                   Thread.yield();
                   try {
                        pbs=(PushBufferStream) dataSource.getStreams()[0];
                        ((com.sun.media.protocol.vfw.VFWSourceStream)pbs).DEBUG=true;
                        } catch(Exception e){}
                        Thread.yield();
                        try{dataSource.start();}catch(Exception e){System.out.println("Exception dataSource.start() "+e);}
                        Thread.yield();
                        try{Thread.sleep(1000);}catch(Exception e){} // to let camera settle ahead of processing
    }

    iTool wrote:
    hi all, i want to capture image from my webcam and play it, but it's not workThat's a very descriptive error message, "it's not work". Everyone on the board will certainly be able to help you out with that.
    The first error I see is that you're using the CaptureDeviceManager in an applet. If T.B.M pops in here, he can tell you why that's going to be a CF 99% of the time.
    The other error I see is that your code looks absolutely nothing like any working JMF webcam capture code I've personally ever seen.
    Lastly, the big one, even if you were somehow capturing video magically, you're not even trying to display it...so I'm not entirely sure why you expect to see anything with the code you just posted.
    [http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/solutions/JVidCap.html]
    Your best bet would be starting over and using the example code from the page linked above.

  • Capturing images from camera and uploading to sharepoint library automatically.

    Hello Everyone,
    My requirement is to capturing images from camera and uploading to sharepoint library automatically. No manual uploading will take place.
    Please suggest me.
    Thanks,
    Rajesh

    Hi,
    From your description, my understanding is that you want to capturing images from camera and uploading to sharepoint library automatically automatically upload images to SharePoint library.
    You will save images in your local computer after capturing visitors’ image. You could develop a custom timer job to periodically get pictures from the local folder in your computer. Please refer to this article:
    Create and Deploy Custom Timer Job Definition in SharePoint Programatically
    http://www.codeproject.com/Tips/634208/Create-and-Deploy-Custom-Timer-Job-Definition-in-S
    you could upload pictures to your SharePoint from the folder with C# code, please refer to this article:
    How to: Upload a File to a SharePoint Site from a Local Folder
    https://msdn.microsoft.com/en-us/library/office/ms454491%28v=office.14%29.aspx?f=255&MSPPError=-2147217396
    Best Regards,
    Vincent Han
    TechNet Community Support
    Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact
    [email protected]

  • Unable to capture video from webcam in JMF in xlet

    hi
    I am unable to capture video from webcam in an Xlet. I am using Xletview to run Xlet. The method CaptureDeviceManager.getDeviceList(vidformat) returns empty array. Which videoformat should I use and why do I get empty array?
    Thanks
    Rajesh

    MHP and OCAP only use JMF 1.0, which does not include support for capturing video. You will not be able to do this in any current MHP/OCAP imlementation that I know of.
    Steve.

  • Unable to capture video from webcam in JMF

    hi
    I am unable to capture video from webcam in an Xlet. I am using Xletview to run Xlet. The method CaptureDeviceManager.getDeviceList(vidformat) returns empty array. Which videoformat should I use and why do I get empty array?

    MHP and OCAP only use JMF 1.0, which does not include support for capturing video. You will not be able to do this in any current MHP/OCAP imlementation that I know of.
    Steve.

  • Capture images from Camera directly at high resolution

    Hello Users,
    I want to capture images from Camera directly at high
    resolution. The problem is that although I am able to capture
    images from a Video Object, but the images are small because the
    Video size is only 160x120. So if I am able to capture directly
    from Camera, I am sure to get a higher resolution images at which
    the camera is capturing.
    Any help in this matter will be of great help

    Hello Users,
    I want to capture images from Camera directly at high
    resolution. The problem is that although I am able to capture
    images from a Video Object, but the images are small because the
    Video size is only 160x120. So if I am able to capture directly
    from Camera, I am sure to get a higher resolution images at which
    the camera is capturing.
    Any help in this matter will be of great help

  • Capture Image from Screen and Yosemite Mail

    Composing a new mail message in Yosemite. If use the pull-down option to Capture Image from Screen and place the image in the message body (HTML), the image is not being sent with the message. A broken image icon is sent instead.
    If, on the other hand, I use the paperclip to add an image file to the message body all is well. Same if I copy and paste an image into the message body.
    In both those cases where it works, I also get the Markup pulldown to edit the image. In the Capture Image from Screen case where it doesn't work I also don't get the Markup pulldown menu and options.
    Anyone else seeing this? Is it a known bug with Yosemite or just on my side?

    I'm actually experiencing the same thing, i asked my officemate and he is also getting the same error when using capture on mac mail

  • Capture image from isight

    What is the best way to capture images from iSight using Applescript ?

    erritikamathur wrote:
    What is the best way to capture images from iSight using Applescript
    (1) Depending on what you want to do, you may be able to use your "Automator" application to make your scripts instead (Automator calls them "workflows".)
    When you launch Automator, you can immediately select the "Photos & Images" as a starting point to see if it will meet your needs by selecting "my Computer's Camera" in the "Get content from:" choices bar there.
    For more info on Automator, start with Mac 101: Automator and then launch Automator on your Mac and use its Automator > Help as needed.
    (2) If you really need to use AppleScript, you need to understand that you script applications (such as iChat), not devices (like iSight.) Therefore, first decide what you want to do with your iSight. Click -> here to see a list of some applications that can operate your iSight.
    Once you have decided what you want to do, launch your Mac's AppleScript Script Editor.
    Next, open Script Editor's Library window to see a list of Apple apps that are scriptable. Those that can control iSight include iChat, iMovie, and iPhoto. Double-click on one of the apps of interest to see the dictionary of functions that can be scripted in that application. Reviewing the library for any app will help you determine whether the functions you want to control can be scripted in that app. If not, you need to find another app that can control that function, develop an alternate process flow that can be scripted, or look for a way to accomplish your task other than with AppleScript.
    Some third party apps may also be scriptable. See the documentation or support info for particulars directly from the developers of those apps.
    More help is available from a variety of sources. For instance, you can check your Mac's Help on specific applications to see if they contain info on automating them. One specific example is iChat > Help, which gives a good start on your iChat study.
    Unless you already know how to use AppleScript, you may also need to do some more general study or perhaps take advantage of the Apple training series book available from the Apple Store.
    EZ Jim
    G5 DP 1.8GHz w/Mac OS X (10.5.7) PowerBook 1.67GHz (10.4.11)   iBookSE 366MHz (10.3.9)  External iSight

  • I have installed mountaion lion and I am getting an error 150:30 that prevents me from opening my photoshop cs4 extended. Does anyone know how to fix this?

    I have installed mountaion lion and I am getting an error 150:30 that prevents me from opening my photoshop cs4 extended. Does anyone know how to fix this?
    Thanks

    It's a "licensing error" see this for what steps to take: Error "Licensing has stopped working"  | Mac OS

  • How to Display a image from WebCam in the Forms 10.1.2.0.2!

    Hi Friends!
    I'm using a Forms 10.1.2.0.2 and i need to display of someway a image from webcam in some item inside the Forms!
    This is possible?
    I saw an explanation in http://www.orafaq.com/forum/t/89431/67467/ but it works only for a Forms 6.0!
    Somebody can Help me?

    As Jan mentioned, there is no way to display webcam video in Forms unless you create a Java Bean which can be incorporated into your form. As Pauli mentioned, if your webcam software is viewable via a browser, you can use WEB.SHOW_DOCUMENT to display a browser window with the content, however you will not be able to put this content in the form using the method.
    A good starting place would be Google. Look for a java bean or applet which can operate a web cam.
    http://www.google.com/search?q=java+applet+web+cam

  • Error retrieving newly captured image from a camera.

    Hello Everyone,
    I am developing a user<->digital camera interaction application and I have a
    problem with accessing newly captured picture. The thing is I am trying to save
    the picture directly to the hard disk(this is possible with the camera I am using).
    So normally, as stated in the camera PTP specification, the process can be described
    in the following steps:
    1). PTP command 'capture' - is send successfully to the camera( the camera captures).
    2). Event 'RequestObjectTransfer' of ObjectHandle 0x12345678 - is received from the
    camera and processed by my application.
    3). GetObjectInfo (of ObjectHandle (0x12345678) ) command should be send to the camera.
    4). ObjectInfo - received from the camera.
    5). GetObject (of ObjectHandle (0x12345678) command send to camera.
    6). Object of ObjectHandle (0x12345678) received from the camera.
    7). Event TransferReady.
    Everything works fine until I try to ask for the object's info:
    - (CFDictionaryRef*) copyObjectPropertyDictionary
    OSErr err;
    ICACopyObjectPropertyDictionaryPB pb = {};
    NSDictionary* dict;
    pb.theDict = (CFDictionaryRef *)&dict;
    pb.object = 0x12345678;
    err = ICACopyObjectPropertyDictionary(&pb, NULL); //(**)
    if (noErr != err)
    NSLog(@"Error retrieving object info!");
    else
    return dict; // CFDictionaryRef *
    return NULL;
    The call (**) in the code above results in "err == -9905(kICAInvalidObjectErr)", so can
    anybody tell me where my mistake is because there is obviously one (btw I
    wrote the same application for Windows and the id 0x12345678 is recognized there.)

    It is an OS X application, the GUI is already done(not all of the controlls are functional,
    there are really a lot of them as the camera tend to be 'semi-professional' == 'a lot of
    settings'). Actually, what my application can do at this point is read/write settings
    from/to the camera, can 'sense' some event notifications, can capture image when the
    camera is on external mode(no memory card) and the images are processed to the
    'Current User'/Pitures folder and finally can look pretty sexy
    The method that gave me headaches for a week or so was the common ICADownloaFile
    it was not recognized by this particular camera as was not the 'copyObjectPropertyDictionary'
    posted above. Instead I wrote two PTPPassThrough methods which are now accepted by the
    Cam.

  • Capturing an image from webcam

    hi, i'm trying to capture a image from a webcam, but i don't have a clue of how to do this, could anyone help me with samples or books.
    thanks.

    hi
    so as i understood u want to access the USB and make whats called camera interaction i worked with my webcam and i generate a video stream and i'm working now to sample this video
    i found these class on the internet u have to make a littel changes like camera defention
    * File: DeviceInfo.java.java
    * created 24.07.2001 21:44:12 by David Fischer, [email protected]
    import java.awt.Dimension;
    import javax.media.*;
    import javax.media.control.*;
    import javax.media.format.*;
    import javax.media.protocol.*;
    public class DeviceInfo
         public static Format formatMatches (Format format, Format supported[] )
              if (supported == null)
                   return null;
              for (int i = 0;  i < supported.length;  i++)
                   if (supported.matches(format))
                        return supported[i];
              return null;
         public static boolean setFormat(DataSource dataSource, Format format)
              boolean formatApplied = false;
              FormatControl formatControls[] = null;
              formatControls = ((CaptureDevice) dataSource).getFormatControls();
              for (int x = 0; x < formatControls.length; x++)
                   if (formatControls[x] == null)
                        continue;
                   Format supportedFormats[] = formatControls[x].getSupportedFormats();
                   if (supportedFormats == null)
                        continue;
                   if (DeviceInfo.formatMatches(format, supportedFormats) != null)
                        formatControls[x].setFormat(format);
                        formatApplied = true;
              return formatApplied;
         public static boolean isVideo(Format format)
              return (format instanceof VideoFormat);
         public static boolean isAudio(Format format)
              return (format instanceof AudioFormat);
         public static String formatToString(Format format)
              if (isVideo(format))
                   return videoFormatToString((VideoFormat) format);
              if (isAudio(format))
                   return audioFormatToString((AudioFormat) format);
              return ("--- unknown media device format ---");
         public static String videoFormatToString(VideoFormat videoFormat)
              StringBuffer result = new StringBuffer();
              // add width x height (size)
              Dimension d = videoFormat.getSize();
              result.append("size=" + (int) d.getWidth() + "x" + (int) d.getHeight() + ", ");
              // try to add color depth
              if (videoFormat instanceof IndexedColorFormat)
                   IndexedColorFormat f = (IndexedColorFormat) videoFormat;
                   result.append("color depth=" + f.getMapSize() + ", ");
              // add encoding
              result.append("encoding=" + videoFormat.getEncoding() + ", ");
              // add max data length
              result.append("maxdatalength=" + videoFormat.getMaxDataLength() + "");
              return result.toString();
         public static String audioFormatToString(AudioFormat audioFormat)
              StringBuffer result = new StringBuffer();
              // short workaround
              result.append(audioFormat.toString().toLowerCase());
              return result.toString();
    the second class:
    * File: MyDataSinkListener.java
    * created 24.07.2001 21:41:47 by David Fischer, [email protected]
    * Decription: simple data sink listener, used to check for end of stream
    import javax.media.datasink.*;
    public class MyDataSinkListener implements DataSinkListener
         boolean endOfStream = false;
         public void dataSinkUpdate(DataSinkEvent event)
              if (event instanceof javax.media.datasink.EndOfStreamEvent)
                   endOfStream = true;
         public void waitEndOfStream(long checkTimeMs)
              while (! endOfStream)
                   Stdout.log("datasink: waiting for end of stream ...");
                   try { Thread.currentThread().sleep(checkTimeMs); } catch (InterruptedException ie) {}
              Stdout.log("datasink: ... end of stream reached.");
    * File: MyDataSinkListener.java
    * created 24.07.2001 21:41:47 by David Fischer, [email protected]
    * Decription: simple data sink listener, used to check for end of stream
    import javax.media.datasink.*;
    public class MyDataSinkListener implements DataSinkListener
         boolean endOfStream = false;
         public void dataSinkUpdate(DataSinkEvent event)
              if (event instanceof javax.media.datasink.EndOfStreamEvent)
                   endOfStream = true;
         public void waitEndOfStream(long checkTimeMs)
              while (! endOfStream)
                   Stdout.log("datasink: waiting for end of stream ...");
                   try { Thread.currentThread().sleep(checkTimeMs); } catch (InterruptedException ie) {}
              Stdout.log("datasink: ... end of stream reached.");
    }[i]the 3rd class:/******************************************************
    * File: Stdout.java.java
    * created 24.07.2001 21:44:46 by David Fischer, [email protected]
    * Description: utility class for standard output
    public class Stdout
         public static void log(String msg)
              System.out.println(msg);
         public static void logAndAbortException(Exception e)
              log("" + e);
              flush();
              System.exit(0);
         public static void logAndAbortError(Error e)
              log("" + e);
              flush();
              System.exit(0);
         public static void flush()
              System.out.flush();
    the 4rt is :
    * File: TestQuickCamPro.java
    * created 24.07.2001 21:40:13 by David Fischer, [email protected]
    * Description: this test program will capture the video and audio stream
    * from a Logitech QuickCam� Pro 3000 USB camera for 10 seconds and stores
    * it on a file, named "testcam.avi". You can use the microsoft windows
    * media player to display this file.
    * operating system: Windows 2000
    * required hardware:  Logitech QuickCam� Pro 3000
    * required software: jdk 1.3 or jdk1.4 plus jmf2.1.1 (www.javasoft.com)
    * source files: DeviceInfo.java, MyDataSinkListener.java,
    *               Stdout.java, TestQuickCamPro.java
    * You can just start this program with "java TestQuickCamPro"
    * hint: please make shure that you setup first the logitech camerea drives
    * and jmf2.1.1 correctly. "jmf.jar" must be part of your CLASSPATH.
    * useful links:
    * - http://java.sun.com/products/java-media/jmf/2.1.1/index.html
    * - http://java.sun.com/products/java-media/jmf/2.1.1/solutions/index.html
    * with some small modifications, this program will work with any USB camera.
    import java.io.*;
    import javax.media.*;
    import javax.media.control.*;
    import javax.media.datasink.*;
    import javax.media.format.*;
    import javax.media.protocol.*;
    public class TestQuickCamPro
         private static boolean                    debugDeviceList = false;
         private static String                    defaultVideoDeviceName = "vfw:Microsoft WDM Image Capture (Win32):0";
         private static String                    defaultAudioDeviceName = "DirectSoundCapture";
         private static String                    defaultVideoFormatString = "size=176x144, encoding=yuv, maxdatalength=38016";
         private static String                    defaultAudioFormatString = "linear, 16000.0 hz, 8-bit, mono, unsigned";
         private static CaptureDeviceInfo     captureVideoDevice = null;
         private static CaptureDeviceInfo     captureAudioDevice = null;
         private static VideoFormat               captureVideoFormat = null;
         private static AudioFormat               captureAudioFormat = null;
         public static void main(String args[])
              // get command line arguments
              for (int x = 0; x < args.length; x++)
                   // -dd = debug devices list -> display list of all media devices - and exit
                   if (args[x].toLowerCase().compareTo("-dd") == 0)
                        debugDeviceList = true;
              // get a list of all media devices, search default devices and formats, and print it out if args[x] = "-dd"
              Stdout.log("get list of all media devices ...");
              java.util.Vector deviceListVector = CaptureDeviceManager.getDeviceList(null);
              if (deviceListVector == null)
                   Stdout.log("... error: media device list vector is null, program aborted");
                   System.exit(0);
              if (deviceListVector.size() == 0)
                   Stdout.log("... error: media device list vector size is 0, program aborted");
                   System.exit(0);
              for (int x = 0; x < deviceListVector.size(); x++)
                   // display device name
                   CaptureDeviceInfo deviceInfo = (CaptureDeviceInfo) deviceListVector.elementAt(x);
                   String deviceInfoText = deviceInfo.getName();
                   if (debugDeviceList)
                        Stdout.log("device " + x + ": " + deviceInfoText);
                   // display device formats
                   Format deviceFormat[] = deviceInfo.getFormats();
                   for (int y = 0; y < deviceFormat.length; y++)
                        // serach for default video device
                        if (captureVideoDevice == null)
                             if (deviceFormat[y] instanceof VideoFormat)
                             if (deviceInfo.getName().indexOf(defaultVideoDeviceName) >= 0)
                             captureVideoDevice = deviceInfo;
                             Stdout.log(">>> capture video device = " + deviceInfo.getName());
                        // search for default video format
                        if (captureVideoDevice == deviceInfo)
                             if (captureVideoFormat == null)
                             if (DeviceInfo.formatToString(deviceFormat[y]).indexOf(defaultVideoFormatString) >= 0)
                             captureVideoFormat = (VideoFormat) deviceFormat[y];
                             Stdout.log(">>> capture video format = " + DeviceInfo.formatToString(deviceFormat[y]));
                        // serach for default audio device
                        if (captureAudioDevice == null)
                             if (deviceFormat[y] instanceof AudioFormat)
                             if (deviceInfo.getName().indexOf(defaultAudioDeviceName) >= 0)
                             captureAudioDevice = deviceInfo;
                             Stdout.log(">>> capture audio device = " + deviceInfo.getName());
                        // search for default audio format
                        if (captureAudioDevice == deviceInfo)
                             if (captureAudioFormat == null)
                             if (DeviceInfo.formatToString(deviceFormat[y]).indexOf(defaultAudioFormatString) >= 0)
                             captureAudioFormat = (AudioFormat) deviceFormat[y];
                             Stdout.log(">>> capture audio format = " + DeviceInfo.formatToString(deviceFormat[y]));
                        if (debugDeviceList)
                             Stdout.log(" - format: " +  DeviceInfo.formatToString(deviceFormat[y]));
              Stdout.log("... list completed.");
              // if args[x] = "-dd" terminate now
              if (debugDeviceList)
                   System.exit(0);
              // setup video data source
              MediaLocator videoMediaLocator = captureVideoDevice.getLocator();
              DataSource videoDataSource = null;
              try
                   videoDataSource = javax.media.Manager.createDataSource(videoMediaLocator);
              catch (IOException ie) { Stdout.logAndAbortException(ie); }
              catch (NoDataSourceException nse) { Stdout.logAndAbortException(nse); }
              if (! DeviceInfo.setFormat(videoDataSource, captureVideoFormat))
                   Stdout.log("Error: unable to set video format - program aborted");
                   System.exit(0);
              // setup audio data source
              MediaLocator audioMediaLocator = captureAudioDevice.getLocator();
              DataSource audioDataSource = null;
              try
                   audioDataSource = javax.media.Manager.createDataSource(audioMediaLocator);
              catch (IOException ie) { Stdout.logAndAbortException(ie); }
              catch (NoDataSourceException nse) { Stdout.logAndAbortException(nse); }
              if (! DeviceInfo.setFormat(audioDataSource, captureAudioFormat))
                   Stdout.log("Error: unable to set audio format - program aborted");
                   System.exit(0);
              // merge the two data sources
              DataSource mixedDataSource = null;
              try
                   DataSource dArray[] = new DataSource[2];
                   dArray[0] = videoDataSource;
                   dArray[1] = audioDataSource;
                   mixedDataSource = javax.media.Manager.createMergingDataSource(dArray);
              catch (IncompatibleSourceException ise) { Stdout.logAndAbortException(ise); }
              // create a new processor
              // setup output file format  ->> msvideo
              FileTypeDescriptor outputType = new FileTypeDescriptor(FileTypeDescriptor.MSVIDEO);
              // setup output video and audio data format
              Format outputFormat[] = new Format[2];
              outputFormat[0] = new VideoFormat(VideoFormat.INDEO50);
              outputFormat[1] = new AudioFormat(AudioFormat.GSM_MS /* LINEAR */);
              // create processor
              ProcessorModel processorModel = new ProcessorModel(mixedDataSource, outputFormat, outputType);
              Processor processor = null;
              try
                   processor = Manager.createRealizedProcessor(processorModel);
              catch (IOException e) { Stdout.logAndAbortException(e); }
              catch (NoProcessorException e) { Stdout.logAndAbortException(e); }
              catch (CannotRealizeException e) { Stdout.logAndAbortException(e); }
              // get the output of the processor
              DataSource source = processor.getDataOutput();
              // create a File protocol MediaLocator with the location
              // of the file to which bits are to be written
              MediaLocator dest = new MediaLocator("file:testcam.avi");
              // create a datasink to do the file
              DataSink dataSink = null;
              MyDataSinkListener dataSinkListener = null;
              try
                   dataSink = Manager.createDataSink(source, dest);
                   dataSinkListener = new MyDataSinkListener();
                   dataSink.addDataSinkListener(dataSinkListener);
                   dataSink.open();
              catch (IOException e) { Stdout.logAndAbortException(e); }
              catch (NoDataSinkException e) { Stdout.logAndAbortException(e); }
              catch (SecurityException e) { Stdout.logAndAbortException(e); }
              // now start the datasink and processor
              try
                   dataSink.start();
              catch (IOException e) { Stdout.logAndAbortException(e); }
              processor.start();
              Stdout.log("starting capturing ...");
              try { Thread.currentThread().sleep(10000); } catch (InterruptedException ie) {}     // capture for 10 seconds
              Stdout.log("... capturing done");
              // stop and close the processor when done capturing...
              // close the datasink when EndOfStream event is received...
              processor.stop();
              processor.close();
              dataSinkListener.waitEndOfStream(10);
              dataSink.close();
              Stdout.log("[all done]");
    }finally search with the athour name there is an additional program u must download to detect ur cam .
    i hope that is work with u

Maybe you are looking for

  • Having trouble installing Photoshop on Mac OSX 10.7.4

    Hello Im having trouble installing Photoshop CS6 and Illustator CS6. I am geting the following errow while trying to install in Creative Cloud Download Manager: Exit Code: 34 -------------------------------------- Summary ----------------------------

  • Which MBP is better for Final Cut Pro?

    Hi Everyone, I'm looking to replace my 2010 MacBook Pro 13" on a budget. I'd like to get a retina 13" macbook pro, either the refurb 2012 with 8GB ram and the i5, or the refurb 2013 with 4GB ram, i5 and the new Intel Iris graphics card. Which is bett

  • No querryresult because of using sysdate

    Something is wrong with my date format. I receive no results in the querry after I use the following code in trigger key-menu begin if Get_Item_Property(:system.cursor_item, DATATYPE)='DATE' then Copy(trunc(sysdate) , :System.Cursor_Item); end if; en

  • Learning either Flex or ajax to create a searchable database

    Greetings Flex forum, I've just created a site for my small property rental company and am ready to make it more sophisticated. Currently, I have a form on the site which has about 20 fields of criteria - bedrooms, baths, price range, area, amenities

  • Acceptable range of speeds for this line.

    Dear Forum, I have for many months now been on the phone to Bt with regards to the fact that when I run the speedtester the results for the acceptable range of speeds for this line dose not match up to BT's own table within their broadband speed wiza