Web Cam settings
How do I adjust the settings for the built in web cam on my iMac. When I use it the colour is off and I want to adjust.
Krish2404,
your non-Retina Mid 2012 MacBook Pro’s webcam has a resolution of 1280 × 720; I don’t know how that compares to either your HP laptop or your iPhone. There is no built-in software to adjust your MacBook Pro’s webcam settings; perhaps there’s a third-party app that will let you adjust it.
At any rate, if its webcam doesn’t meet your expectations, then you should be able to take your MacBook Pro back to where you bought it for a full refund. Why live with something which you’re very disappointed in?
Similar Messages
-
How do I stop Flash enabling my web-camera ? I've tried Flash settings.
I want my web-camera to be enabled but only on appropriiate sites (such as Second Life) or in appropriate apps such as Skype but Flash keeps enabling the camera even when I go to YouTube.
I have tried their online settings options to fix the problem but it doesn't stop the camera becoming enabled by say YouTube even though I set the options to "always ask".
How can I fix this ?Yes, I deleted all the websites and reset everything to "ask" except p2p which I turned off.
Whenever I first go to any page with flash content (from reboot) my webcam becomes powered - note I don't mean that it is actually recording but of course there's no way you can tell that when the light comes on.
This phenomenon only started with the current flash update. -
Web camera application settings not changing
My webcam settings stopped working. I have Windows 7 Ultimate 64 bit, Satellite C55-A5310. It worked fine and a few days ago the settings stopped working. I click mirror or flip and none of them work. The settings for colors don't work as well. I have tried uninstalling and reinstalling. How do I fix this and what is the link for checking the drivers for it?
If your computer is less than a year old I'd suggest contacting Toshiba Support as it is still under warranty.
You say you restored your computer. Did you restore it to out-of-box state, or use a restore point?
I agree with you in that cannot locate the web cam driver on your support site. Again, I'd contact Toshiba support and ask them where the driver/app is for your camera.
L305-S5955, T9300 Intel Core 2 Duo, 4GB RAM, 60GB SSD, Win 7 Ultimate 64-bit -
How do i use my FaceTime camera as a web cam?
I am trying to figure out how to use the facetime camera on my macbook pro as a web cam with non apple users. Please help.
If you are trying to use Flash based web sites that you open in your browser, there is no difference in operation regardless of whether your webcam is being viewed by a PC or by another Mac user. However, if you are having problems with Flash sites, verify that your Flash plug-in is the latest one that is compatible with your system.
• You can find the latest Flash version that works with your OS X 10.7.3 using this page:
http://www.adobe.com/software/flash/about/
If you need to update, use your Mac's Disk Utility to repair permissions. Then follow Adobe's instructions here: http://kb2.adobe.com/cps/908/cpsid_90893.html
Be sure to uninstall your current Flash player before installing the new one.
Repair permissions again immediately following installation of the updated Flash player.
• Be aware that the current Flash Player Preferences can be configured in your
Lion Mac's > System Preferences... These settings may be blocking Flash on a system-wide basis.
• Individual Flash settings are still configured in the same way as older versions:
http://tinyurl.com/5kjv3
Message was edited by: EZ Jim
Mac OSX 10.7.3 -
Hi
I have TFS server installed and working with other SharePoint farm. (TFS installed, SharePoint extension installed and Granted Access for TFS.
When Setup TFS - SharePoint Web Application Settings, It ask for the three values:
Web Application URL:
Central Administration URL:
Default Location of team project collection sites:
What notice about the TFS sites that are working is that they are Path Based Site Collection. Created with SharePoint Web Application managed path (like
http://spserver/sites/tfs_site1) and so it easy to see it will work.
Web Application URL: http://spserver
CA URL : http://spserver:portnumber
Default Location : Sites or any managed path
We start using Host Name Site Collection (HNSC) to get the benefit of multiple unique site name without having multiple web application for each. Work great but when we tried to setup and extend TFS service on the HNSC, we could
not get them to work and got errors when trying different variation of path URL.
After doing lot of searching on this, I came up pretty empty and I don't know if that is possible so my question is Have anyone able to setup TFS to work with SharePoint 2013 Host Name Site Collection?
If you have, a simple yes will be great but please share or even if anyone think it is possible or not possible, please share too.
Thanks in advance for any comment / suggestion.
SwanlHi Swanl,
I’m afraid that we cannot setup TFS to work with SharePoint 2013 Host Name Site Collection.
Also you can initial a new thread in Visual Studio Team Foundation Server forums:
Team Foundation Server – General: http://social.msdn.microsoft.com/Forums/vstudio/en-US/home?forum=tfsgeneral
More experts for Team Foundation Server will assist you, then you will get more information relation to your issue.
For integrating SharePoint 2013 with Team Foundation Server 2013 you can have a look at the following blog:
http://nakedalm.com/integrate-sharepoint-2013-with-team-foundation-server-2013/
Thanks,
Eric
Forum Support
Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support,
contact [email protected]
Eric Tao
TechNet Community Support -
Vf-0040 instant web cam is not working good
This is my first web cam it's a hand me down ,i spent days trying to figure out how to get it working until i found out i needed 2 different software's to run it. Download the Creative WebCam Center and WCC_PCApp_US_1_71_02 driver and know it's sort of working after all my effort.
It is so blurry i can't even make out my own face? I cleaned the lens with alcohol and a cue tips and it wasn't any better than before and there is what seems to be a fake focus adjustment knob but it doesn't move? I played with the software and used the advanced settings and got no noticeable difference except in the color of the blur that's supposed to be my face.
What did i do wrong or is the web cam wrongHi there @Vonita
Welcome to the HP Support Forums!
I understand that you are having problems with your webcam, and I am happy to help. Firstly, can you post the full product number and the operating system you are using? That would help me to direct you to the correct drivers.
How Do I Find My Model Number or Product Number?
Is the Windows Version on My Computer 32-bit or 64-bit?
For now, you can take a look at whichever of these most applies to your system.
Webcam Troubleshooting (Windows 8)
Webcam Troubleshooting (Windows 7)
Malygris1
I work on behalf of HP
Please click Accept as Solution if you feel my post solved your issue, it will help others find the solution.
Click Kudos Thumbs Up on the right to say “Thanks” for helping! -
Web cam is not recognized properly on Satellite L500D
Hi
I have a Satellite L500D when I login in the web cam app pops up and say web camera initialization failed. Please check your camera device and restart application or computer.
I press ok and the app closes down so I checked the device manager and there were no camera devices.
I downloaded the driver twice and still can`t see the driver in the device manager area.Hi
Thats pretty strange.
Is your notebook preinstalled with original Toshiba recovery image (factory state)?
Everything is possible and it can be defective cam but best way to find it out is to install OS again using Toshiba HDD recovery installation. After doing this you will have factory state again.
With factory settings every hardware component should work properly.
Do not install any additional software. After finishing OS installation check webcam functionality to see if the same will happen again. if there is the same situation contact nearest Toshiba service and explain the situation. -
How can I get my web cam to work in Adobe Connect ?
This is actually an end user's question that I am having trouble answering to...
We use Adobe Connect to give online language classes, the end user is one of the students.
I cannot find the right Support answer to give him.
Problem:
My camera does not work when I connect to Adobe's rooms but camera works fine with other software.
Even though I suspected my old camera was working fine, yesterday I went ahead and bought a new camera.
I thought perhaps my webcam software may have been a problem, so I bought a different type camera with different software.
Even after removing all the old software, same result:
I surmised the problem might be caused by my firewall and security software, so once I tried changing the permissions for Adobe, and my Webcam, but that didn’t work.
Another time, I restarted my computer right before class and then turned off my firewall completely so there would be no interference but to no avail. I’m totally perplexed.
Isn’t there anyone else experiencing a similar problem? Has anyone else found a solution?
I run Windows Vista with McAfee Internet Security Software. I always reboot the computer before class and open no other programs other than Google Chrome.
I now have a brand new Microsoft LifeCam Cinema Camera with LifeCam 3.5 Webcam Software.
I test my camera before going online. It always works fine. Then I shut down the camera program and login into class.
When I “connect webcam” in the room, the light on my camera comes on (suggesting that it is ON), but only a black image is transmitted to the room.Check to see if you have Google Voice installed. If so, remove it and see
if your problem vanishes. If not Google Voice, check to see if you have
any other communications software which interacts with your cam and
disable it. This was the problem I had with a similar problem on a Mac.
MosesJOI <[email protected]>
10/13/11 12:08 PM
Please respond to
[email protected]
To
jsb152 <[email protected]>
cc
Subject
How can I get my web cam to work in Adobe Connect ?
Re: How can I get my web cam to work in Adobe Connect ?
created by MosesJOI in General Discussion - View the full discussion
Thanks a lot Heyward for the swift reply !
I sent the advice out to the end user, but unfortunately this wasn't the
solution.
His reply is below :-
The default resolution of my new camera is already set at 640x360, but I
went ahead and tried several lower resolutions (e.g. 424x240; 320x240; and
160x120) but none worked in the room - camera still showed up as black
blank screen. Also, as far as I can tell, I don’t have the option of
adjusting the frame rate.
I started playing around with my Internet Security Settings to see if they
might be playing a role. So far, all to no avail.
Hmm...quite a tricky one - webcams always are - maybe if he can find a way
to adjust the frame rate (?).
He's going to fiddle about with the settings a bit more and see if
something does the trick.
If anyone has had a similar problem and found an ingenious solution,
please jot on a note on this thread.
Replies to this message go to everyone subscribed to this thread, not
directly to the person who posted the message. To post a reply, either
reply to this email or visit the message page: [
http://forums.adobe.com/message/3969561#3969561]
To unsubscribe from this thread, please visit the message page at [
http://forums.adobe.com/message/3969561#3969561]. In the Actions box on
the right, click the Stop Email Notifications link.
Start a new discussion in General Discussion by email or at Adobe Forums
For more information about maintaining your forum email notifications
please go to http://forums.adobe.com/message/2936746#2936746. -
HP Truevision HD web cam no longer working with Skype since windows 8.1 update
Hi guys,
A major annoying problem as occured since i updated to windows 8.1 my web cam no longer works in skype, it works for everything elese youcam etc just not skpye, audio is working fine too. When i go into settings the programmes freezes and eventually crashes, I can see my webcam listed in skype but thats it, the bottom half of the pane is missing too it cuts out in the middle of clear history, rolled back the driver and it works but messes everything else up. Please help i am ripping my hair out..... thank youodizzle7,
Welcome to the HP Forum.
Skype does run on Windows 8.1, although you may need to update Skype to at least version 6.16.0.105
If you have more issues, please do consider opening a New Post of your own.
This Thread is from last year and is not monitored by our Experts team.
Click the Kudos Thumbs-Up to show you appreciate the help and time from our Experts.
Although I strive to reflect HP's best practices, I do not work for HP.
Click Accept as Solution when the Answer is a good Fix or Workaround!
Kind Regards,
Dragon-Fur -
I bought my HP netbook about the 27th Nov 2011, the web cam worked a treat, but during the x-mas week it started playing up and now doesn't work at all. Can you give me some info as to what to do about this problem. I have reset the computer to the original factory settings but the camera still doesn't work.
Hi,
Please try this:
http://h10025.www1.hp.com/ewfrf/wc/document?docname=c02452221&lc=en&cc=us&dlc=en&product=3761191
(Links for XP & Vista are in there).
Regards
BH
**Click the KUDOS thumb up on the left to say 'Thanks'**
Make it easier for other people to find solutions by marking a Reply 'Accept as Solution' if it solves your problem. -
Satellite S70-A-11H web camera image quality is not good
Hi,
Running windows 8.1 which came with the laptop.
New out of the box.
As per title.
I find the image quality of the camera image to be very grainy, poor color etc.
When I start the web camera using the search bar on the right, it starts using the Microsoft application, when you scroll down to settings all that is available under settings/options is Photo aspect ratio, Grid lines, Location info.
I have been in touch with Toshiba Tech support who advised to do a Laptop refresh, which I did.
This made no difference.
After which they asked me to find the Toshiba web camera application on the laptop, this should have been in the Program Files folder in the Toshiba folder.
This application does not exist on my laptop.
The tech checked the same model laptop that he had available, which I was told when he selected the web camera, it opened using the Toshiba Web camera application, not Microsoft.
I have looked at other Toshiba laptops with web cameras, and found the image quality to be better. Unable to get to settings as these laptops were on display and in demo mode, hence locked down to some extent.
I can't believe that a web camera in this day and age for this value of laptop to have such poor image quality. My digital camera from 10year ago has better image quality.
I have checked through the laptop, and I do not have this application installed.
I have checked for updated drivers and software for my laptop, and cannot find this application to be applicable for my laptop. Drivers etc appear to be up to date.
I would like to know, do other users of this S series have any issue of camera image quality.
When the camera is selected what application is being used, Toshiba or Microsoft.
Is Toshiba web camera application applicable to Windows 8.1, as I cannot see it listed for 8.1
Does this sound like a hardware fault or a application/software issue.
Any direction or help on this matter would be appreciated, as I am getting to the point of returning this laptop for a refund.
Thanks in advance.
D.
Yes, I have tried using the FORCE!> The tech checked the same model laptop that he had available, which I was told when he selected the web camera, it opened using the Toshiba Web camera application, not Microsoft.
The Toshiba webcam application is available for Win 7 system but the Win 8 and Windows 8.1 system use the own Microsoft webcam application.
> I have looked at other Toshiba laptops with web cameras, and found the image quality to be better.
Different Toshiba notebooks are equipped with different webcams.
Satellite S70-A-11H was equipped with a *0.92 mega pixel webcam*
A Satellite A660 for example was equipped with an _1.3M mega pixel webcam_
So there is a difference in webcam resolution -
How to view my hp high definition built in web cam to others from touchsmart 310-1110
Product # XS988EA
Sl # CZC1027HP2Hello ammani:
Finely HP updates fix it. I just found out my self how to do it. On any messangers or Skype. Open it up and sign in if you do not see the tools. Aim messanger I haven't figured that one out. For Yahoo, Window Live Massagers and Sype are about the same. Yahoo automatically pick up HP Webcam ounce I set it for Windows Live Massager. Click on Tools List drops down Select Audio and video set up ... First thing you will see is microphone set up run test. Click next Set Up Audio and Video -Webcam (Window) Select the web-cam you want to use to place a video calls. I choose HP Web Camera Filter. You can always close out filter screen after start up won't change your new settings Skpe is a little different this one you need to be signed in. Click on tools ounce signed in. Select Options, New window Click on Video Settings Now you can set up your video same as above for Windows Live Massanger.
For other messengers look for Key words: Tools, Audio Settings. Video Settings. Remeber you may have to be signed in to bring the popper Tool Selection list. Have fun and injoy. -
Web Camera doesn't work on Satellite L50D
Satellite L50D-B-136
Trying got get web camera to work, without success.
Apparently web camera initialization failed according to Toshiba Web Camera Application.Check please BIOS settings. Under advanced > system configuration you can find option to enable/disable webcam. Check please if your webcam is enabled properly.
-
Updated : No question, just example web cam capture code
Hi,
I posted this example a while back, but it had some cosmetic bugs in it.
Here's an updated version.
Quick Start
1. Install JMF 2.1.1e (performance pack version)
( see imports list in source code if you really want to run it using the older version 2.1.1c )
2. You have to set the JMF_HOME or JMFHOME environment variable. Can't remember which one.
"Nearly sure" it's JMF_HOME.
3. Connect your camera
4. run jmfinit ( may need to do a few times until it detects your camera )
When it does, you're in business, and you can try to run the code
5. Run java -cp .;%JMF_HOME%\lib\jmf.jar JWebCam
known issue
Under Java 1.5 / 5 - When capturing a frame, and then resizing that snapshots JFrame, the image did not always scale up and display.
That does work under Java 1.3.1_06 .
Tested on Win98 2nd edition, Java 1.3.1_06, and Creative Web Cam Pro.
Legal stuff in plain english : This code is available for use by everyone, personal or commercial, no need to mention me in licenses or anything. It's just a demo I knocked up for myself. So I am under no obligation to support this. Use it at your own risk.... that implies you can't blame or sue me for anything that goes wrong.
If you like the code, I'd be happy to hear whereabouts you are in the world :-)
Also note : this is the limits of my JMF experience at present.
If you've a separate question, post it to a new topic!
regards,
Owen ( Dublin, Ireland )
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 = 100; // 320;
protected final static int MIN_HEIGHT = 100; // 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 MyCaptureDeviceInfo[] myCaptureDevices = 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 ("")
// Nasty bug workaround
// The minimum JLabel size was determined by the text in the status bar
// So the layoutmanager wouldn't shrink the window for the video image
public Dimension getPreferredSize ( )
// get the JLabel to "allow" a minimum of 10 pixels width
// not to work out the minimum size from the text length
return ( new Dimension ( 10, super.getPreferredSize().height ) );
statusBar.setBorder ( new EtchedBorder() );
getContentPane().add ( statusBar, BorderLayout.SOUTH );
* Initialise
* @returns true if web cam is detected
public boolean initialise ( )
throws Exception
MyCaptureDeviceInfo[] cams = autoDetect();
if ( cams.length > 0 )
if ( cams.length == 1 )
System.out.println ("Note : 1 web cam detected");
return ( initialise ( cams[0].capDevInfo ) );
else
System.out.println ("Note : " + cams.length + " web cams detected");
Object selected = JOptionPane.showInputDialog (this,
"Select Video format",
"Capture format selection",
JOptionPane.INFORMATION_MESSAGE,
null, // Icon icon,
cams, // videoFormats,
cams[0] );
if ( selected != null )
return ( initialise ( ((MyCaptureDeviceInfo)selected).capDevInfo ) );
else
return ( initialise ( null ) );
else
return ( initialise ( null ) );
* 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();
myFormatList = new MyVideoFormat[videoFormats.length];
for ( int i=0; i<videoFormats.length; i++ )
myFormatList[i] = new MyVideoFormat ( (VideoFormat)videoFormats[i] );
Format currFormat = formatControl.getFormat();
visualComponent = player.getVisualComponent();
if ( visualComponent != null )
visualContainer.add ( visualComponent, BorderLayout.CENTER );
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 )
System.err.println ("Error connecting to [" + webCamDeviceInfo.getName() + "] : " + ioEx.getMessage() );
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(); // not needed and big performance hit
currentFormat = selectedFormat;
if ( visualComponent != null )
visualContainer.remove ( visualComponent );
imageSize = currentFormat.getSize();
visualContainer.setPreferredSize ( imageSize );
statusBar.setText ( "Format : " + currentFormat );
System.out.println ("Format : " + currentFormat );
formatControl.setFormat ( currentFormat );
// player.start(); // not needed and big performance hit
visualComponent = player.getVisualComponent();
if ( visualComponent != null )
visualContainer.add ( visualComponent, BorderLayout.CENTER );
invalidate(); // let the layout manager work out the sizes
pack();
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 : due to cosmetic glitches when undocking and docking the toolbar,
// I've set this to false.
toolbar.setFloatable(false);
// 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 MyCaptureDeviceInfo[] autoDetect ( )
Vector list = CaptureDeviceManager.getDeviceList ( null );
CaptureDeviceInfo devInfo = null;
String name;
Vector capDevices = new Vector();
if ( list != null )
for ( int i=0; i<list.size(); i++ )
devInfo = (CaptureDeviceInfo)list.elementAt ( i );
name = devInfo.getName();
if ( name.startsWith ("vfw:") )
System.out.println ("DeviceManager List : " + name );
capDevices.addElement ( new MyCaptureDeviceInfo ( 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 )
System.out.println ("VFW Autodetect List : " + name );
capDevices.addElement ( new MyCaptureDeviceInfo ( devInfo ) );
catch ( Exception ioEx )
System.err.println ("Error connecting to [" + webCamDeviceInfo.getName() + "] : " + ioEx.getMessage() );
// ignore errors detecting device
statusBar.setText ( "AutoDetect failed : " + ioEx.getMessage() );
MyCaptureDeviceInfo[] detected = new MyCaptureDeviceInfo[ capDevices.size() ];
for ( int i=0; i<capDevices.size(); i++ )
detected[i] = (MyCaptureDeviceInfo)capDevices.elementAt ( i );
return ( detected );
* 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 instanceof VideoFormat )
Dimension dim = ((VideoFormat)aFormat).getSize();
// System.out.println ("Video Format " + i + " : " + formats[i].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 )
this.format = format;
public String toString ( )
Dimension dim = format.getSize();
return ( format.getEncoding() + " [ " + dim.width + " x " + dim.height + " ]" );
class MyCaptureDeviceInfo
public CaptureDeviceInfo capDevInfo;
public MyCaptureDeviceInfo ( CaptureDeviceInfo devInfo )
capDevInfo = devInfo;
public String toString ( )
return ( capDevInfo.getName() );
class MySnapshot extends JFrame implements ImageObserver
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 )
super.paint ( g );
g.drawImage ( photo, 0, 0, getWidth(), getHeight(), Color.black, 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 ( "Web Cam Capture" );
myWebCam.setVisible ( true );
if ( !myWebCam.initialise() )
System.out.println ("Web Cam not detected / initialised");
catch ( Exception ex )
ex.printStackTrace();Hi,
Here's a working version.
If there are no spaces after the "<" symbol, it thinks it's a HTML tag.
Putting spaces in, stops this.
cheers,
Owen
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 = 100; // 320;
protected final static int MIN_HEIGHT = 100; // 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 MyCaptureDeviceInfo[] myCaptureDevices = 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 ("")
// Nasty bug workaround
// The minimum JLabel size was determined by the text in the status bar
// So the layoutmanager wouldn't shrink the window for the video image
public Dimension getPreferredSize ( )
// get the JLabel to "allow" a minimum of 10 pixels width
// not to work out the minimum size from the text length
return ( new Dimension ( 10, super.getPreferredSize().height ) );
statusBar.setBorder ( new EtchedBorder() );
getContentPane().add ( statusBar, BorderLayout.SOUTH );
* Initialise
* @returns true if web cam is detected
public boolean initialise ( )
throws Exception
MyCaptureDeviceInfo[] cams = autoDetect();
if ( cams.length > 0 )
if ( cams.length == 1 )
System.out.println ("Note : 1 web cam detected");
return ( initialise ( cams[0].capDevInfo ) );
else
System.out.println ("Note : " + cams.length + " web cams detected");
Object selected = JOptionPane.showInputDialog (this,
"Select Video format",
"Capture format selection",
JOptionPane.INFORMATION_MESSAGE,
null, // Icon icon,
cams, // videoFormats,
cams[0] );
if ( selected != null )
return ( initialise ( ((MyCaptureDeviceInfo)selected).capDevInfo ) );
else
return ( initialise ( null ) );
else
return ( initialise ( null ) );
* 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();
myFormatList = new MyVideoFormat[videoFormats.length];
for ( int i=0; i < videoFormats.length; i++ )
myFormatList[i] = new MyVideoFormat ( (VideoFormat)videoFormats[i] );
Format currFormat = formatControl.getFormat();
visualComponent = player.getVisualComponent();
if ( visualComponent != null )
visualContainer.add ( visualComponent, BorderLayout.CENTER );
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 )
System.err.println ("Error connecting to [" + webCamDeviceInfo.getName() + "] : " + ioEx.getMessage() );
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();
currentFormat = selectedFormat;
if ( visualComponent != null )
visualContainer.remove ( visualComponent );
imageSize = currentFormat.getSize();
visualContainer.setPreferredSize ( imageSize );
statusBar.setText ( "Format : " + currentFormat );
System.out.println ("Format : " + currentFormat );
formatControl.setFormat ( currentFormat );
player.start();
visualComponent = player.getVisualComponent();
if ( visualComponent != null )
visualContainer.add ( visualComponent, BorderLayout.CENTER );
invalidate(); // let the layout manager work out the sizes
pack();
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 : due to cosmetic glitches when undocking and docking the toolbar,
// I've set this to false.
toolbar.setFloatable(false);
// 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 MyCaptureDeviceInfo[] autoDetect ( )
Vector list = CaptureDeviceManager.getDeviceList ( null );
CaptureDeviceInfo devInfo = null;
String name;
Vector capDevices = new Vector();
if ( list != null )
for ( int i=0; i < list.size(); i++ )
devInfo = (CaptureDeviceInfo)list.elementAt ( i );
name = devInfo.getName();
if ( name.startsWith ("vfw:") )
System.out.println ("DeviceManager List : " + name );
capDevices.addElement ( new MyCaptureDeviceInfo ( 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 )
System.out.println ("VFW Autodetect List : " + name );
capDevices.addElement ( new MyCaptureDeviceInfo ( devInfo ) );
catch ( Exception ioEx )
System.err.println ("Error connecting to [" + webCamDeviceInfo.getName() + "] : " + ioEx.getMessage() );
// ignore errors detecting device
statusBar.setText ( "AutoDetect failed : " + ioEx.getMessage() );
MyCaptureDeviceInfo[] detected = new MyCaptureDeviceInfo[ capDevices.size() ];
for ( int i=0; i < capDevices.size(); i++ )
detected[i] = (MyCaptureDeviceInfo)capDevices.elementAt ( i );
return ( detected );
* 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 instanceof VideoFormat )
Dimension dim = ((VideoFormat)aFormat).getSize();
// System.out.println ("Video Format " + i + " : " + formats[i].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 )
this.format = format;
public String toString ( )
Dimension dim = format.getSize();
return ( format.getEncoding() + " [ " + dim.width + " x " + dim.height + " ]" );
class MyCaptureDeviceInfo
public CaptureDeviceInfo capDevInfo;
public MyCaptureDeviceInfo ( CaptureDeviceInfo devInfo )
capDevInfo = devInfo;
public String toString ( )
return ( capDevInfo.getName() );
class MySnapshot extends JFrame implements ImageObserver
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 )
super.paint ( g );
g.drawImage ( photo, 0, 0, getWidth(), getHeight(), Color.black, 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 ( "Web Cam Capture" );
myWebCam.setVisible ( true );
if ( !myWebCam.initialise() )
System.out.println ("Web Cam not detected / initialised");
catch ( Exception ex )
ex.printStackTrace(); -
No Question, just example web cam capture code
Hi,
Since loads of people ask for an example of capturing pics from a web cam, here's one that captures pics, lets you take snapshots, which it displays in another frame. When you shut down the frame it asks if you want to save it to a JPEG.
I'm mainly posting this to spite Eka_Kupkova, who only visits this forum to shamelessly advertise a commercial Twain based package in every single posting on this forum which mentions web cams.
Notes : ( Could be more, read the install docs for JMF )
1. you must download the "performance" version of jmf to capture video.
2. I "think" you need to setup the JMF_HOME environment variable
3. Run the jmfinit program to detect your camera and register it.
I had to run it a couple of times before it worked.
4. I had 2 icons for my toolbar, BtnFormat.jpg and BtnCapture.jpg.
They were just 16 x 16 pixel bitmaps, you can make them up yourself.
5. I assume you've got the webcam working and the driver installed already.
Ps. if you find this useful, then reply back with where you are in the world. I'm in Dublin, Ireland.
cheers,
Owen
import javax.swing.*;
import javax.swing.border.*;
import java.io.*;
import javax.media.*;
import javax.media.format.*;
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.*;
// Ps. I think JMF 2.1.1c used a different package for this class..
import com.sun.media.vfw.VFWCapture;
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 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;
* 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");
addWindowListener ( this );
addComponentListener ( this );
getContentPane().setLayout ( new BorderLayout() );
statusBar = new JLabel ("Initialising...");
statusBar.setBorder ( new EtchedBorder() );
getContentPane().add ( statusBar, BorderLayout.SOUTH );
setSize ( 320, 260 ); // default size...
setVisible ( true );
* 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
webCamDeviceInfo = _deviceInfo;
if ( webCamDeviceInfo != null )
statusBar.setText ( "Connecting to : " + webCamDeviceInfo.getName() );
try
// setUpMenu ( );
setUpToolBar();
getContentPane().add ( toolbar, BorderLayout.NORTH );
ml = webCamDeviceInfo.getLocator();
if ( ml != null )
player = Manager.createRealizedPlayer ( ml );
if ( player != null )
formatControl = (FormatControl)player.getControl ( "javax.media.control.FormatControl" );
videoFormats = webCamDeviceInfo.getFormats();
setFormat ( (VideoFormat)videoFormats[0] );
// player.start();
visualComponent = player.getVisualComponent();
getContentPane().add ( visualComponent, BorderLayout.CENTER );
invalidate();
pack();
setSize ( imageSize.width, imageSize.height + statusBar.getHeight() + toolbar.getHeight() );
myFormatList = new MyVideoFormat[videoFormats.length];
for ( int i=0; i<videoFormats.length; i++ )
myFormatList[i] = new MyVideoFormat ( (VideoFormat)videoFormats[i] );
else
statusBar.setText ( "No Media Locator for : " + webCamDeviceInfo.getName() );
return ( true );
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();
statusBar.setText ( "Format : " + selectedFormat );
imageSize = selectedFormat.getSize();
formatControl.setFormat ( selectedFormat );
currentFormat = selectedFormat;
setSize ( imageSize.width, imageSize.height + statusBar.getHeight() + toolbar.getHeight() );
player.start();
else
System.out.println ("Visual component not an instance of FormatControl");
statusBar.setText ( "Visual component cannot change format" );
protected void setUpToolBar ( )
toolbar = new JToolBar();
formatButton = new MyToolBarAction ( "Format", "BtnFormat.jpg" );
captureButton = new MyToolBarAction ( "Capture", "BtnCapture.jpg" );
if ( formatButton != null )
toolbar.add ( formatButton );
toolbar.add ( captureButton );
getContentPane().add ( toolbar, BorderLayout.NORTH );
protected void toolbarHandler ( MyToolBarAction actionBtn )
if ( actionBtn == formatButton )
// JOptionPane.showConfirmDialog ( this, "Format Dialog" );
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 ( );
MySnapshot snapshot = new MySnapshot ( photo, new Dimension ( imageSize ) );
* autoDetects the first web camera in the system
* @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 instanceof VideoFormat )
Dimension dim = ((VideoFormat)aFormat).getSize();
System.out.println ("Video Format " + i + " : " + formats[i].getEncoding() + ", " + dim.width + " x " + dim.height );
else
System.out.println ("Format " + i + " : " + formats[i].getEncoding() );
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" );
Buffer buf = fgc.grabFrame();
return ( buf );
else
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() );
Image image = btoi.createImage ( buffer );
return ( image );
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 )
super ( name, new ImageIcon ( imagefile ) );
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.DO_NOTHING_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 );
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" );
if ( myWebCam.initialise() )
// myWebCam.deviceInfo(); // outputs device info
else
System.out.println ("Web Cam not detected / initialised");
catch ( Exception ex )
ex.printStackTrace();Doohhh... I posted an old version which didn't work.
I tried and tested this last night, and it runs grand using Ver 2.1.1e.
Tested under Windows 98, using an old Creative GO Camera.
Haven't tried it under Linux, but suspect you'd have to at least change an references to "vfw" to "v4l".
You'll need jmf.jar in your classpath to run it too.
cheers,
Owen
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[i] = new MyVideoFormat ( (VideoFormat)videoFormats[i] );
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 instanceof VideoFormat )
Dimension dim = ((VideoFormat)aFormat).getSize();
// System.out.println ("Video Format " + i + " : " + formats[i].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();
Maybe you are looking for
-
Hi, I recently did a Time Machine backup of my MacBook Pro (Mountain Lion) onto an external HDD. Around the time of the last backup, my system was behaving funny so I decided to rebuild the OS X. Because the last TM backup was of a system that as men
-
Can i break payment for iPhone 6 plus into installments?
Purchasing a iPhone 6 Plus. At 400.00 due upon placing my order, can I break it up into installment payments? Thanks!
-
HP 15.6" G56-129WM Laptop PC with Intel Celeron 900 Processor & Windows 7 Home Premium
My computer is really slow... I've tried restarting it to the manufuture setting, but it didn't really work . It is a bit faster but its still really slow. It runs slow even when just having one google chrome/ internet experor site. What could the p
-
Exam 1z0-147 - Autonomous transactions in triggers
hi all, I am taking my 1z0-147 exam soon and I would like to know if anyone can help me out with this dilema. all the practice material I have used states that transactional statements such as COMMIT cannot be performed inside a trigger. However this
-
Help Me Write A GREP Expression?
I have a list of numbers formatted like: (801234123412) that should read: 80-1234-1234-12 I know it can be done, I just don't know how, and am short on time for learning.