Draw OpenGL- or Direct3D graphics on IMAQ camera window?

I am making a vision-application to track the position and orientation of an object. Now I want to overlay OpenGL- or Direct3D graphics (or similar) onto the object in the image.
In other words, this will be sort of an Augmented Reality application.
Can I do this directly onto the IMAQ window that shows the live camera image? If yes - how? If no - then how? Do I have to show the image and the graphics with OpenGL or with Direct3D? Or any other ways?
-Thanks!

Hm, well, I guess that does work, but then I have to figure out for myself what pixels need to be changed. I would rather like to just call some OpenGL-/GLUT functions like glutDrawSolidSphere() etc. Then I only have to worry about position, orientation and size of the cube - not as low-level as changing pixels.
Thanks, anyway!
Torbjørn

Similar Messages

  • Support direct3D graphics, 3D PDF toolkit

    It would be nice if in Acrobat's 3D tools, it would support both OpenGL graphics based models and Direct3D graphics based models.
    I use Autodesk Inventor 2011 as my 3D application.  Adobe does support some Inventor files, but none after about the 2009 (not exactly sure when OpenGL was taken out of Inventor support) release of Inventor.  So now, as a work-around, I have to convert all of my Inventor files to STEP or IGES files first before creating 3D PDF's.

    Thanks for the reply. Yes, I had heard that...I kind of figured that add-on software sanctioned by Adobe would be to Adobe's specifications.  Not sure how that works...
    What about in Acrobat 9 Pro Extended?  Who handles issues/patches with translation and import of 3D models?

  • How to draw white border(only corner) lines around camera view finder

    Hi. You know those white corner lines around the camera view that is found on most camera apps, how do I draw those lines around the camera view? I'm developing a video camera app and now I want to draw those lines to indicate where the camera view finder
    is. The white line starts at the top left corner of the camera view(horizontal) then stops about one quarter and starts again at the other side(top right). The same at left, right and bottom side. It shouldn't be a full square/rectangle just the corners. I
    think you understand what I'm talking about now. How can I draw just "video camera corner lines"? After this question I want to ask you how to change the resolution like to 176*220, 240*320 ect and what the available resolutions is for capturing
    video-clips. For now just the white corner lines of camera view. Thanks in advance:-)

    How do I draw lines and shapes on top of the camera view finder(cvf)?
    +how do I show the battery life bar on cvf?
    +how do I programmatically add text on the cvf?
    +how do I make a connection request? (connect to a URL)?
    +how do I change the resolution of the video camera? What is the acceptable values for resolution?
    +how do I listen for touch events on the cvf?
    Thanks

  • Controlling IMAQ camera capture via DAQmx operation

    Dear all,
    I am working with a PCIe-1427 board connected via link to a camera (SUI Goodrich) and am also using a PCI-6731 board to which I have attached an M-series SCC-68 connector block.
    I have been successful in writing code for controlling .avi capture from the camera and writing separate code to control the switching of an optical switch connected to the SCC-68.
    The two lines of the optical switch relay differing information and I wish to alternately introduce this information to the camera for analysis.  Ideally I wish to trigger the acquisition of the camera capture with the optical switching such that each frame contains information of a single channel only but I have been unsuccessful as yet in the integration of the counter DAQmx operation with the IMAQ camera code.
    Is this possible?  I see from 1 previous post that through the use of an RTSI cable I can connect the two devices together (or alternately use the DAQmx to output a trigger on the digital lines).  Can anyone suggest information or an example on how to route signals from DAQmx via RTSI to IMAQ?  Also is there anything that I should be looking out for with regards the pulse generation to the switch which allows the signals to be passed via RTSI? 
    I find that by running my camera and counter code in the same vi both will work (obviously not in sync) - if I connect the RTSI and select camera settings to accept RTSI triggers, should this be a simple solution?
    I would greatly appreciate any insights you would have; my time is running out very quickly and is really distressing.
    Kindest regards and thanks,
    Miika

    Hi sachsm,
    Thanks for your reply. 
    I am unsure what you refer to by 'routed to PXI Trig0' - can you please elaborate.  I have my RTSI cable configures in MAX and I am using IMAQ Configure Trigger3.vi with the trigger set to 2 so that when the assertion edge of a trigger is received, the buffer list is acquired.
    Please see my code below.  Should I adjust my trigger settings in MAX? It's currently set to internal.
    Kind regards,
    Miika
    Attachments:
    code.zip ‏22 KB

  • Now draw your own ScriptUIGraphics graphics! (1st testing)

    Hey everyone, I've made this little system of drawing ScriptUIGraphics from your illustrator document.  Please be advised, the graphics resulting from this are not anti-aliased and look bad at medium sizes --> terrible at small sizes, but they may help with making some dynamic icons for some really specific scriptUI purposes.
    Basically, you just draw something in an AI doc, run this window and use the function from it as well as the object resource string to recreate that drawing in your own scriptUI windows.
    This method only uses straight lines and ellipses when it detects ellipses.  After seeing the quality of these drawings, I'm thinking for the prettier icons you'd surely want to embed images into your UI, but there may come a very very rare time when there exists a need for some dynamic image with many states, so this may be what it may end up perhaps being useful for.
    Attached are screenshots with original drawing (artboard is 100x100px), the captured image drawn in window and last, pretty much the same- is the result drawn from object resource string.  The screenshots JPEGs have smoothed out the little icons, making them look actually better than they really are!
    Edit: 
         Oh yes, I did need to mention: the colors used can be any color, spot/Lab included!  They just get changed to some version of RGB for rendering.
    // ScriptUI Graphics Display by Vasily
    function graphicsDisplay(){
        function itemShape(myShape){
            // Going to test for circles.
            var shapeKind={
                isrectangle: null,
                iscircle: null,
                isellipse: null
            if(myShape.typename=='PathItem' && myShape.pathPoints.length == 4){ // RECTANGLE CHECKER
                //--------------------2 diagonals-------------------------
                var recEquaDistOne = parseInt(Math.pow((myShape.pathPoints[0].anchor[0] - myShape.pathPoints[2].anchor[0]),2) +
                Math.pow((myShape.pathPoints[0].anchor[1] - myShape.pathPoints[2].anchor[1]),2)); // diagonal
                var recEquaDistTwo = parseInt(Math.pow((myShape.pathPoints[1].anchor[0] - myShape.pathPoints[3].anchor[0]),2) +
                Math.pow((myShape.pathPoints[1].anchor[1] - myShape.pathPoints[3].anchor[1]),2)); // diagonal
                //---------------------4 sides of rectangle---------------
                var sideA = parseInt(Math.pow((myShape.pathPoints[0].anchor[0] - myShape.pathPoints[1].anchor[0]),2) +
                Math.pow((myShape.pathPoints[0].anchor[1] - myShape.pathPoints[1].anchor[1]),2)); 
                var sideB = parseInt(Math.pow((myShape.pathPoints[1].anchor[0] - myShape.pathPoints[2].anchor[0]),2) +
                Math.pow((myShape.pathPoints[1].anchor[1] - myShape.pathPoints[2].anchor[1]),2)); 
                var sideC = parseInt(Math.pow((myShape.pathPoints[2].anchor[0] - myShape.pathPoints[3].anchor[0]),2) +
                Math.pow((myShape.pathPoints[2].anchor[1] - myShape.pathPoints[3].anchor[1]),2)); 
                var sideD = parseInt(Math.pow((myShape.pathPoints[3].anchor[0] - myShape.pathPoints[0].anchor[0]),2) +
                Math.pow((myShape.pathPoints[3].anchor[1] - myShape.pathPoints[0].anchor[1]),2)); 
                if(recEquaDistOne == recEquaDistTwo){ // If two diagonals connecting opposite points are same length, it's a 90 degree box               
                    if((sideA == sideC) && (sideB == sideD)){
                        for(var j=0; j<4; j++){
                            var point = myShape.pathPoints[j];             
                                if((point.leftDirection[0] == point.anchor[0]) &&
                                    (point.anchor[0] == point.rightDirection[0]) &&
                                    (point.leftDirection[1] == point.anchor[1]) &&
                                    (point.anchor[1] == point.rightDirection[1])){                                                   
                                    shapeKind.isrectangle = true;
                                } else {
                                    shapeKind.isrectangle = false;
                                    break;
                if(myShape.pathPoints.length == 4){  // CIRCLE CHECKER
                    if(shapeKind.isrectangle == false || shapeKind.isrectangle == null){
                        var circlePts = new Array();
                        var circleSlopes = new Array();
                        for (k=0; k<4; k++){
                        var point = myShape.pathPoints[k]; 
                        var leftHandleDist = parseInt(Math.pow((point.leftDirection[0] - point.anchor[0]),2) +
                        Math.pow((point.leftDirection[1] - point.anchor[1]),2));
                        var rightHandleDist = parseInt(Math.pow((point.rightDirection[0] - point.anchor[0]),2) +
                        Math.pow((point.rightDirection[1] - point.anchor[1]),2));
                        circlePts.push(leftHandleDist, rightHandleDist);
                        var leftHandleSlope = ((point.leftDirection[0] - point.anchor[0])/(point.leftDirection[1] - point.anchor[1])).toFixed(2);
                        var rightHandleSlope = ((point.rightDirection[0] - point.anchor[0])/(point.rightDirection[1] - point.anchor[1])).toFixed(2);
                        circleSlopes.push(leftHandleSlope, rightHandleSlope);
                    for(var f=0; f<8; f++){ // Allows non-rotated circles.
                        if(circleSlopes[f] == "-0.00"){
                            circleSlopes[f] = "0.00";
                        if(circleSlopes[f] == "-Infinity"){
                            circleSlopes[f] = "Infinity";
                    var cirEquaDistOne = parseInt(Math.pow((myShape.pathPoints[0].anchor[0] - myShape.pathPoints[2].anchor[0]),2) +
                    Math.pow((myShape.pathPoints[0].anchor[1] - myShape.pathPoints[2].anchor[1]),2));
                    var cirEquaDistTwo = parseInt(Math.pow((myShape.pathPoints[1].anchor[0] - myShape.pathPoints[3].anchor[0]),2) +
                    Math.pow((myShape.pathPoints[1].anchor[1] - myShape.pathPoints[3].anchor[1]),2));
                    if(circleSlopes[0] != "NaN"){ // Filters out asymmetric rhombus  <><><>^^^^^^<><><>
                        if((circlePts[0] == circlePts[1]) && // Filters out shapes with control handles not of equal distance from anchor point.
                            (circlePts[1] == circlePts[2]) &&
                            (circlePts[2] == circlePts[3]) &&
                            (circlePts[3] == circlePts[4]) &&
                            (circlePts[4] == circlePts[5]) &&
                            (circlePts[5] == circlePts[6]) &&
                            (circlePts[6] == circlePts[7]) &&
                            (circlePts[7] == circlePts[0])){
                            if((circleSlopes[0] == circleSlopes[1]) && // Filters out the equadistant 4-pointed Star shape (dismisses negative slopes).
                                (circleSlopes[2] == circleSlopes[3]) &&
                                (circleSlopes[4] == circleSlopes[5]) &&
                                (circleSlopes[6] == circleSlopes[7])){
                                if(cirEquaDistOne == cirEquaDistTwo){ // Filters out Ellipses (non-equadistant circles).
                                    // Filters out the very RARE 4-pointed star which has all control points in its center on top of each other!
                                    if(((myShape.pathPoints[0].leftDirection[0]).toFixed(2) != (myShape.pathPoints[1].leftDirection[0]).toFixed(2)) &&
                                        ((myShape.pathPoints[0].leftDirection[1]).toFixed(2) != (myShape.pathPoints[1].leftDirection[1]).toFixed(2))){
                                        shapeKind.iscircle = true;
                                    } else {
                                        shapeKind.iscircle = false;
                        } else {
                            if((circlePts[0]==circlePts[1]) &&
                                (circlePts[2]==circlePts[3]) &&
                                ((circlePts[4]==circlePts[5]) && (circlePts[4]==circlePts[1]) && (circlePts[5]==circlePts[1])) &&
                                ((circlePts[6]==circlePts[7]) && (circlePts[6]==circlePts[2]) && (circlePts[7]==circlePts[3]))){
                                shapeKind.isellipse=true;
        //~                     $.writeln(circlePts[0]+'\r'+circlePts[1]+'\r'+circlePts[2]+'\r'+circlePts[3]+'\r'+
        //~                     circlePts[4]+'\r'+circlePts[5]+'\r'+circlePts[6]+'\r'+circlePts[7]);
            return shapeKind;
        if(app.name=='Adobe Illustrator' && app.documents.length>0){
            function round2(num){
                return Math.round(num*100)/100;
            function convertToUIRGB(color){
                if(color=='[CMYKColor]'){
                    var c=color.cyan, m=color.magenta, y=color.yellow, k=color.black;
                    return [
                        round2((1-(c/100))*(1-(k/100))),
                        round2((1-(m/100))*(1-(k/100))),
                        round2((1-(y/100))*(1-(k/100)))
                } else if(color=='[GrayColor]'){
                    var k=color.gray;
                    var grayValue=1-(Math.round(((k/100)*255)*100)/100)/255;
                    return [grayValue,grayValue,grayValue];
                } else if(color=='[GradientColor]'){
                    $.writeln('Sorry, no gradient colors please.');
                    return [0,0,0];
                } else if(color=='[PatternColor]'){
                    $.writeln('Sorry, no pattern colors please.');
                    return [0,0,0,];
                } else if(color=='[SpotColor]'){
                    var clr=color.spot.getInternalColor();
                    if(color.spot.spotKind==SpotColorKind.SPOTCMYK){
                        var c=clr[0], m=clr[1], y=clr[2], k=clr[3];
                        return [
                            round2((1-(c/100))*(1-(k/100))),
                            round2((1-(m/100))*(1-(k/100))),
                            round2((1-(y/100))*(1-(k/100)))
                    } else if(color.spot.spotKind==SpotColorKind.SPOTRGB){
                        return [round2(clr[0]/255), round2(clr[1]/255), round2(clr[2]/255)];
                    } else if(color.spot.spotKind==SpotColorKind.SPOTLAB){
                        var clr=color.spot.getInternalColor();
                        var whiteRef={
                            D65: {X: 95.047,Y: 100, Z: 108.883},
                            D50: {X: 96.422,Y: 100, Z: 82.521},
                        var illuminant='D65';
                        var Y = (clr[0]+16)/116;
                        var X = clr[1]/500+Y;
                        var Z = Y-clr[2]/200;
                        if(Math.pow(Y,3) > 0.008856){Y=Math.pow(Y,3);}
                        else {Y = (Y-16/116)/7.787;}
                        if(Math.pow(X,3) > 0.008856){X=Math.pow(X,3);}
                        else {X = (X-16/116)/7.787;}
                        if(Math.pow(Z,3) > 0.008856){Z=Math.pow(Z,3);}
                        else {Z = (Z-16/116)/7.787;}
                        X*=whiteRef[illuminant].X,Y*=whiteRef[illuminant].Y,Z*=whiteRef[illuminant].Z;
                        //alert(X+" "+Y+" "+Z);
                        X/=100,Y/=100,Z/=100;
                        R=X*3.2406+Y*-1.5372+Z*-0.4986;
                        G=X*-0.9689+Y*1.8758+Z*0.0415;
                        B=X*0.0557+Y*-0.2040+Z*1.0570;
                        //alert(R+" "+G+" "+B);
                        if(R > 0.0031308){R=(1.055*(Math.pow(R,(1/2.4))))-0.055;}
                        else {R*= 12.92;}
                        if(G > 0.0031308){G=(1.055*(Math.pow(G,(1/2.4))))-0.055;}
                        else {G*= 12.92;}
                        if(B > 0.0031308){B=(1.055*(Math.pow(B,(1/2.4))))-0.055;}
                        else {B*= 12.92;}
                        if(R<0){R=0} else if(R>1){R=1};
                        if(G<0){G=0} else if(G>1){G=1};
                        if(B<0){B=0} else if(B>1){B=1};
                        return [round2(R),round2(G),round2(B)];
                } else if(color=='[RGBColor]'){
                    return [round2(color.red/255), round2(color.green/255), round2(color.blue/255)];
            function drawFromObjString(objString, canvasArea){
               function round2(num){
                   return Math.round(num*100)/100;
                var obj=eval(objString);
                var canvas=canvasArea.graphics;
                var counter=obj.total;
                while(counter>=0){
                    for(all in obj){
                        if(all.match(/\d{1,2}$/g) && all.match(/\d{1,2}$/g)==counter){
                            var thisShp=obj[all];
                            if(thisShp.ellipsePath!=true){
                                var vectorPts=thisShp.pathPoints;
                                canvas.newPath(); canvas.moveTo(thisShp.pathPoints[0][0],thisShp.pathPoints[0][1]);
                                for(var j=0; j<vectorPts.length; j++){
                                    var thisAnchor=vectorPts[j];
                                    var x=thisAnchor[0], y=thisAnchor[1];
                                    canvas.lineTo(x,y);
                                if(thisShp.closed==true){
                                    canvas.closePath();
                            } else {
                                var cirPts=thisShp.pathPoints;
                                canvas.newPath();
                                canvas.ellipsePath(cirPts[0], cirPts[1], cirPts[2], cirPts[3]);
                                canvas.closePath();
                            if(thisShp.fillColor!=null){
                                var clr=thisShp.fillColor;
                                var myBrush=canvas.newBrush(canvas.BrushType.SOLID_COLOR,clr);
                                canvas.fillPath(myBrush);
                            if(thisShp.strokeColor!=null){
                                var clr=thisShp.strokeColor;
                                var myPen=canvas.newPen(canvas.PenType.SOLID_COLOR,[clr[0],clr[1],clr[2],1], thisShp.strokeWidth);
                                canvas.strokePath(myPen);
                    counter-=1;
            var doc=app.activeDocument;
            if(doc.height<=400 && doc.width<=600){
                doc.rulerOrigin=[0,doc.height];
                doc.coordinateSystem=CoordinateSystem.DOCUMENTCOORDINATESYSTEM;
                var wDims=function(){
                    var dims={width: '', height: ''};
                    if(doc.width>220){
                        dims.width = Math.round(doc.width);
                    } else {
                        dims.width = 220;
                    if(doc.height>20){
                        dims.height = Math.round(doc.height);
                    } else {
                        dims.height = 20;
                    return dims;
                function drawCapture(vectors, dataDisplay, graphicDisplay){
                    // draws a preview and creates a drawing data object resource.
                    var drawData={total:0}; //Put drawing shapes here.  Properties: stroke (rgb color | null), fill (rgb color | null), pathPoints
                    var canvas=graphicDisplay.graphics;
                    for(var i=vectors.length-1; i>-1; i--){
                        var thisShp=vectors[i];
                        if((thisShp.filled || thisShp.stroked) && thisShp.editable==true){
                            drawData.total++;
                            drawData['shape_'+i]={};
                            drawData['shape_'+i].fillColor=null;
                            drawData['shape_'+i].strokeColor=null;
                            drawData['shape_'+i].pathPoints=[];
                            drawData['shape_'+i].ellipsePath=false;
                            if(itemShape(thisShp).iscircle==true || itemShape(thisShp).isellipse==true || thisShp.name=='ellipse' ||
                                thisShp.name=='circle' || thisShp.name=='cir'){
                                drawData['shape_'+i].ellipsePath=true;
                                drawData['shape_'+i].pathPoints=[thisShp.left, -thisShp.top, thisShp.width, thisShp.height];
                                canvas.newPath();
                                canvas.ellipsePath(thisShp.left, -thisShp.top, thisShp.width, thisShp.height);
                            } else {
                                var vectorPts=thisShp.pathPoints;
                                canvas.newPath(); canvas.moveTo(Math.round(vectorPts[0].anchor[0]),-Math.round(vectorPts[0].anchor[1]));
                                for(var j=0; j<vectorPts.length; j++){
                                    var thisAnchor=vectorPts[j].anchor;
                                    var x=Math.round(thisAnchor[0]), y=-Math.round(thisAnchor[1]);
                                    drawData['shape_'+i].pathPoints.push([x,y]);
                                    canvas.lineTo(x,y);
                            if(thisShp.closed || drawData['shape_'+i].ellipsePath==true){
                                drawData['shape_'+i].closed=true;
                                if(drawData['shape_'+i].ellipsePath!=true){
                                    canvas.closePath();
                            } else {
                                drawData['shape_'+i].closed=false;
                            if(thisShp.filled){
                                var clr=thisShp.fillColor;
                                var colorArray=convertToUIRGB(clr);
                                var myBrush=canvas.newBrush(canvas.BrushType.SOLID_COLOR,colorArray);
                                drawData['shape_'+i].fillColor=colorArray;
                                canvas.fillPath(myBrush);
                            if(thisShp.stroked){
                                var clr=thisShp.strokeColor;
                                var colorArray=convertToUIRGB(clr);
                                var myPen=canvas.newPen(canvas.PenType.SOLID_COLOR,[colorArray[0],colorArray[1],colorArray[2],1], Math.round(thisShp.strokeWidth));
                                drawData['shape_'+i].strokeColor=colorArray;
                                drawData['shape_'+i].strokeWidth=Math.round(thisShp.strokeWidth);
                                canvas.strokePath(myPen);
                    return drawData;
                function showDrawerFunc(objStringDisplay, wDims){
                    var w2=new Window('dialog','Drawer Function');
                    var containerG=w2.add('tabbedpanel');
                        var funcG=containerG.add('tab',undefined,'Drawer Function');
                            var dispE=funcG.add('edittext',undefined,funcSrc,{multiline:true}); dispE.size=[580,200];
                            var selBtn=funcG.add('button',undefined,'Select All');
                        var drawingG=containerG.add('tab',undefined,'Drawing:');
                            var drawG=drawingG.add('group');
                                var drawP=drawG.add('panel',undefined,''); drawP.size=[wDims.width, wDims.height];
                    var msgCntr=w2.add('panel',undefined,'Message Center:');
                        var msgE=msgCntr.add('edittext',undefined,'',{multiline:true});msgE.size=[560,40];
                    var btnG=w2.add('group');
                        var okBtn=btnG.add('button',undefined,'Ok',{name: 'ok'});
                    selBtn.onClick=function(){
                        dispE.active=false; dispE.active=true;
                    drawG.onDraw=function(){
                        if(objStringDisplay.text!=''){
                            try{
                                drawFromObjString(objStringDisplay.text, this);
                            } catch(e){
                                msgE.text=("Something isn't right:\r"+e);
                        } else {
                            msgE.text=('You must first put a valid object string into the object string display area--> "Get Source Object String" button, 1st window, 1st tab.');
                    w2.show();
                function instructions(){
                    var w3=new Window('dialog','instructions');
                    var instructions=w3.add('edittext',undefined,'',{multiline:true}); instructions.size=[400,100];
                    instructions.text="1)  Have a document open, smaller than 600x400.\r\r"+
                        "2)  Draw some stuff- use paths only, straight lines or ellipses only. To have script explicitly recognize ellipse, "+
                        "label the path 'cir', 'circle', or 'ellipse'. Right now there's a function to detect ellipses, but it is coarse.\r\r"+
                        "3)  Run this script and see if your drawing was captured below this box.\r\r"+
                        "4)  Click the 'Get Object String' button and see the drawing instruction string appear.\r\r"+
                        "5)  Click the 'View Drawer Function/Drawing' button to see the function used to draw scriptUI picture from"+
                        " the object string and use other tab to see the drawing made with this function from that object string.\r\r"+
                        "6)  Edit your string to see your picture change if needed!";
                    var okBtn=w3.add('button',undefined,'OK');
                    w3.show();
                var funcSrc=drawFromObjString.toSource();
                var dispWindow=function(){
                    var drawData;
                    var w=new Window('dialog','ScriptUI Graphics Display');
                    var panel=w.add('panel',undefined,''); panel.size=[wDims.width+6,wDims.height+6];
                    var list=w.add('edittext',undefined,'',{multiline:true}); list.size=[wDims.width,150];
                    var btnsG=w.add('group');
                        var clickBtn=btnsG.add('button',undefined,'Get Source Object String');
                        var selectBtn=btnsG.add('button',undefined,'Select All');
                    var btnG2=w.add('group');
                        var funcBtn=btnG2.add('button',undefined,'See Drawer Function/Drawing');
                        funcBtn.helpTip='Uses the Object String picture info to draw using ScriptUIGraphics lineTo commands.';
                        var helpBtn=btnG2.add('button',undefined,'?'); helpBtn.size=[25,25];
                    panel.onDraw=function(){
                        drawData=drawCapture(doc.pathItems, list, this);
                    clickBtn.addEventListener('mousedown',function(){
                        list.text=drawData.toSource();
                    funcBtn.onClick=function(){
                        showDrawerFunc(list, wDims);
                    helpBtn.onClick=function(){
                        instructions();
                    selectBtn.onClick=function(){
                        list.active=false; list.active=true;
                    var okBtn=w.add('button',undefined,'OK');
                    w.show();
            } else {
                alert('Please use a document with main artboard no larger than 600x400.');
        } else {
            alert('Must run in Illustrator with at least 1 document open.');
    graphicsDisplay();

    New-er update to this:
    // ScriptUI Graphics Display by Vasily
    #target illustrator
    function graphicsDisplay(){
        function itemShape(myShape){
            // Going to test for circles.
            var shapeKind={
                isrectangle: null,
                iscircle: null,
                isellipse: null
            if(myShape.typename=='PathItem' && myShape.pathPoints.length == 4){ // RECTANGLE CHECKER
                //--------------------2 diagonals-------------------------
                var recEquaDistOne = parseInt(Math.pow((myShape.pathPoints[0].anchor[0] - myShape.pathPoints[2].anchor[0]),2) +
                Math.pow((myShape.pathPoints[0].anchor[1] - myShape.pathPoints[2].anchor[1]),2)); // diagonal
                var recEquaDistTwo = parseInt(Math.pow((myShape.pathPoints[1].anchor[0] - myShape.pathPoints[3].anchor[0]),2) +
                Math.pow((myShape.pathPoints[1].anchor[1] - myShape.pathPoints[3].anchor[1]),2)); // diagonal
                //---------------------4 sides of rectangle---------------
                var sideA = parseInt(Math.pow((myShape.pathPoints[0].anchor[0] - myShape.pathPoints[1].anchor[0]),2) +
                Math.pow((myShape.pathPoints[0].anchor[1] - myShape.pathPoints[1].anchor[1]),2)); 
                var sideB = parseInt(Math.pow((myShape.pathPoints[1].anchor[0] - myShape.pathPoints[2].anchor[0]),2) +
                Math.pow((myShape.pathPoints[1].anchor[1] - myShape.pathPoints[2].anchor[1]),2)); 
                var sideC = parseInt(Math.pow((myShape.pathPoints[2].anchor[0] - myShape.pathPoints[3].anchor[0]),2) +
                Math.pow((myShape.pathPoints[2].anchor[1] - myShape.pathPoints[3].anchor[1]),2)); 
                var sideD = parseInt(Math.pow((myShape.pathPoints[3].anchor[0] - myShape.pathPoints[0].anchor[0]),2) +
                Math.pow((myShape.pathPoints[3].anchor[1] - myShape.pathPoints[0].anchor[1]),2)); 
                if(recEquaDistOne == recEquaDistTwo){ // If two diagonals connecting opposite points are same length, it's a 90 degree box               
                    if((sideA == sideC) && (sideB == sideD)){
                        for(var j=0; j<4; j++){
                            var point = myShape.pathPoints[j];             
                                if((point.leftDirection[0] == point.anchor[0]) &&
                                    (point.anchor[0] == point.rightDirection[0]) &&
                                    (point.leftDirection[1] == point.anchor[1]) &&
                                    (point.anchor[1] == point.rightDirection[1])){
                                    shapeKind.isrectangle = true;
                                } else {
                                    shapeKind.isrectangle = false;
                                    break;
                if(myShape.pathPoints.length == 4){  // CIRCLE CHECKER
                    if(shapeKind.isrectangle == false || shapeKind.isrectangle == null){
                        var circlePts = new Array();
                        var circleSlopes = new Array();
                        for (k=0; k<4; k++){
                        var point = myShape.pathPoints[k]; 
                        var leftHandleDist = parseInt(Math.pow((point.leftDirection[0] - point.anchor[0]),2) +
                        Math.pow((point.leftDirection[1] - point.anchor[1]),2));
                        var rightHandleDist = parseInt(Math.pow((point.rightDirection[0] - point.anchor[0]),2) +
                        Math.pow((point.rightDirection[1] - point.anchor[1]),2));
                        circlePts.push(leftHandleDist, rightHandleDist);
                        var leftHandleSlope = ((point.leftDirection[0] - point.anchor[0])/(point.leftDirection[1] - point.anchor[1])).toFixed(2);
                        var rightHandleSlope = ((point.rightDirection[0] - point.anchor[0])/(point.rightDirection[1] - point.anchor[1])).toFixed(2);
                        circleSlopes.push(leftHandleSlope, rightHandleSlope);
                    for(var f=0; f<8; f++){ // Allows non-rotated circles.
                        if(circleSlopes[f] == "-0.00"){
                            circleSlopes[f] = "0.00";
                        if(circleSlopes[f] == "-Infinity"){
                            circleSlopes[f] = "Infinity";
                    var cirEquaDistOne = parseInt(Math.pow((myShape.pathPoints[0].anchor[0] - myShape.pathPoints[2].anchor[0]),2) +
                    Math.pow((myShape.pathPoints[0].anchor[1] - myShape.pathPoints[2].anchor[1]),2));
                    var cirEquaDistTwo = parseInt(Math.pow((myShape.pathPoints[1].anchor[0] - myShape.pathPoints[3].anchor[0]),2) +
                    Math.pow((myShape.pathPoints[1].anchor[1] - myShape.pathPoints[3].anchor[1]),2));
                    if(circleSlopes[0] != "NaN"){ // Filters out asymmetric rhombus  <><><>^^^^^^<><><>
                        if((circlePts[0] == circlePts[1]) && // Filters out shapes with control handles not of equal distance from anchor point.
                            (circlePts[1] == circlePts[2]) &&
                            (circlePts[2] == circlePts[3]) &&
                            (circlePts[3] == circlePts[4]) &&
                            (circlePts[4] == circlePts[5]) &&
                            (circlePts[5] == circlePts[6]) &&
                            (circlePts[6] == circlePts[7]) &&
                            (circlePts[7] == circlePts[0])){
                            if((circleSlopes[0] == circleSlopes[1]) && // Filters out the equadistant 4-pointed Star shape (dismisses negative slopes).
                                (circleSlopes[2] == circleSlopes[3]) &&
                                (circleSlopes[4] == circleSlopes[5]) &&
                                (circleSlopes[6] == circleSlopes[7])){
                                if(cirEquaDistOne == cirEquaDistTwo){ // Filters out Ellipses (non-equadistant circles).
                                    // Filters out the very RARE 4-pointed star which has all control points in its center on top of each other!
                                    if(((myShape.pathPoints[0].leftDirection[0]).toFixed(2) != (myShape.pathPoints[1].leftDirection[0]).toFixed(2)) &&
                                        ((myShape.pathPoints[0].leftDirection[1]).toFixed(2) != (myShape.pathPoints[1].leftDirection[1]).toFixed(2))){
                                        shapeKind.iscircle = true;
                                    } else {
                                        shapeKind.iscircle = false;
                        } else {
                            if((circlePts[0]==circlePts[1]) &&
                                (circlePts[2]==circlePts[3]) &&
                                ((circlePts[4]==circlePts[5]) && (circlePts[4]==circlePts[1]) && (circlePts[5]==circlePts[1])) &&
                                ((circlePts[6]==circlePts[7]) && (circlePts[6]==circlePts[2]) && (circlePts[7]==circlePts[3]))){
                                shapeKind.isellipse=true;
        //~                     $.writeln(circlePts[0]+'\r'+circlePts[1]+'\r'+circlePts[2]+'\r'+circlePts[3]+'\r'+
        //~                     circlePts[4]+'\r'+circlePts[5]+'\r'+circlePts[6]+'\r'+circlePts[7]);
            return shapeKind;
        if(app.name=='Adobe Illustrator' && app.documents.length>0){
            function round2(num){
                return Math.round(num*100)/100;
            function convertToUIRGB(color){
                if(color=='[CMYKColor]'){
                    var c=color.cyan, m=color.magenta, y=color.yellow, k=color.black;
                    return [
                        round2((1-(c/100))*(1-(k/100))),
                        round2((1-(m/100))*(1-(k/100))),
                        round2((1-(y/100))*(1-(k/100)))
                } else if(color=='[GrayColor]'){
                    var k=color.gray;
                    var grayValue=1-(Math.round(((k/100)*255)*100)/100)/255;
                    return [grayValue,grayValue,grayValue];
                } else if(color=='[GradientColor]'){
                    $.writeln('Sorry, no gradient colors please.');
                    return [0,0,0];
                } else if(color=='[PatternColor]'){
                    $.writeln('Sorry, no pattern colors please.');
                    return [0,0,0,];
                } else if(color=='[SpotColor]'){
                    var clr=color.spot.getInternalColor();
                    if(color.spot.spotKind==SpotColorKind.SPOTCMYK){
                        var c=clr[0], m=clr[1], y=clr[2], k=clr[3];
                        return [
                            round2((1-(c/100))*(1-(k/100))),
                            round2((1-(m/100))*(1-(k/100))),
                            round2((1-(y/100))*(1-(k/100)))
                    } else if(color.spot.spotKind==SpotColorKind.SPOTRGB){
                        return [round2(clr[0]/255), round2(clr[1]/255), round2(clr[2]/255)];
                    } else if(color.spot.spotKind==SpotColorKind.SPOTLAB){
                        var clr=color.spot.getInternalColor();
                        var whiteRef={
                            D65: {X: 95.047,Y: 100, Z: 108.883},
                            D50: {X: 96.422,Y: 100, Z: 82.521},
                        var illuminant='D65';
                        var Y = (clr[0]+16)/116;
                        var X = clr[1]/500+Y;
                        var Z = Y-clr[2]/200;
                        if(Math.pow(Y,3) > 0.008856){Y=Math.pow(Y,3);}
                        else {Y = (Y-16/116)/7.787;}
                        if(Math.pow(X,3) > 0.008856){X=Math.pow(X,3);}
                        else {X = (X-16/116)/7.787;}
                        if(Math.pow(Z,3) > 0.008856){Z=Math.pow(Z,3);}
                        else {Z = (Z-16/116)/7.787;}
                        X*=whiteRef[illuminant].X,Y*=whiteRef[illuminant].Y,Z*=whiteRef[illuminant].Z;
                        //alert(X+" "+Y+" "+Z);
                        X/=100,Y/=100,Z/=100;
                        R=X*3.2406+Y*-1.5372+Z*-0.4986;
                        G=X*-0.9689+Y*1.8758+Z*0.0415;
                        B=X*0.0557+Y*-0.2040+Z*1.0570;
                        //alert(R+" "+G+" "+B);
                        if(R > 0.0031308){R=(1.055*(Math.pow(R,(1/2.4))))-0.055;}
                        else {R*= 12.92;}
                        if(G > 0.0031308){G=(1.055*(Math.pow(G,(1/2.4))))-0.055;}
                        else {G*= 12.92;}
                        if(B > 0.0031308){B=(1.055*(Math.pow(B,(1/2.4))))-0.055;}
                        else {B*= 12.92;}
                        if(R<0){R=0} else if(R>1){R=1};
                        if(G<0){G=0} else if(G>1){G=1};
                        if(B<0){B=0} else if(B>1){B=1};
                        return [round2(R),round2(G),round2(B)];
                } else if(color=='[RGBColor]'){
                    return [round2(color.red/255), round2(color.green/255), round2(color.blue/255)];
            function drawFromObjString(objString, canvasArea){
                function drawPath(shp){
                    var thisShp=shp;
                    if(thisShp.ellipsePath!=true){
                        var vectorPts=thisShp.pathPoints;
                        canvas.newPath(); canvas.moveTo(thisShp.pathPoints[0][0],thisShp.pathPoints[0][1]);
                        for(var j=0; j<vectorPts.length; j++){
                            var thisAnchor=vectorPts[j];
                            var x=thisAnchor[0], y=thisAnchor[1];
                            canvas.lineTo(x,y);
                        if(thisShp.closed==true){
                            canvas.closePath();
                    } else {
                        var cirPts=thisShp.pathPoints;
                        canvas.newPath();
                        canvas.ellipsePath(round2(cirPts[0]), round2(cirPts[1]), round2(cirPts[2]), round2(cirPts[3]));
                        canvas.closePath();
                    if(thisShp.fillColor!=null){
                        var clr=thisShp.fillColor;
                        var myBrush=canvas.newBrush(canvas.BrushType.SOLID_COLOR,clr);
                        canvas.fillPath(myBrush);
                    if(thisShp.strokeColor!=null){
                        var clr=thisShp.strokeColor;
                        var myPen=canvas.newPen(canvas.PenType.SOLID_COLOR,[clr[0],clr[1],clr[2],1], thisShp.strokeWidth);
                        canvas.strokePath(myPen);
            //$.writeln(objString.replace(/'\+\n*\r*'/g,'').replace(/(^'|';$)/g,''));
                var obj=eval(objString.replace(/'\+\n*\r*'/g,'').replace(/(^'|';$)/g,''));
                var canvas=canvasArea.graphics;
                var counter=obj.total;
                while(counter>=0){
                    for(all in obj){
                        if(all.match(/\d{1,2}$/g) && all.match(/\d{1,2}$/g)==counter){
                            var thisShp=obj[all];
                            if(all.match('group')){
                                var ctr=obj[all].total;
                                while(ctr>=0){
                                    for(paths in obj[all]){
                                        if(paths.match(/\d{1,2}$/g) && paths.match(/\d{1,2}$/g)==ctr){
                                            drawPath(obj[all][paths]);
                                    ctr--;
                            } else {
                                drawPath(thisShp);
                    counter-=1;
            var doc=app.activeDocument;
            if(doc.height<=400 && doc.width<=600){
                doc.rulerOrigin=[0,doc.height];
                doc.coordinateSystem=CoordinateSystem.DOCUMENTCOORDINATESYSTEM;
                var wDims=function(){
                    var dims={width: '', height: ''};
                    if(doc.width>220){
                        dims.width = Math.round(doc.width);
                    } else {
                        dims.width = 220;
                    if(doc.height>20){
                        dims.height = Math.round(doc.height);
                    } else {
                        dims.height = 20;
                    return dims;
                function drawCapture(docArt, dataDisplay, graphicDisplay){
                    function capturePathItem(pathItem, drawObj, count){
                        var thisShp=pathItem, drawData=drawObj, i=count;
                        if((thisShp.filled || thisShp.stroked) && thisShp.editable==true){
                            drawData['shape_'+i]={};
                            drawData['shape_'+i].fillColor=null;
                            drawData['shape_'+i].name=thisShp.name;
                            drawData['shape_'+i].tag=thisShp.note;
                            drawData['shape_'+i].strokeColor=null;
                            drawData['shape_'+i].pathPoints=[];
                            drawData['shape_'+i].ellipsePath=false;
                            if(itemShape(thisShp).iscircle==true || itemShape(thisShp).isellipse==true || thisShp.name=='ellipse' ||
                                thisShp.name=='circle' || thisShp.name=='cir'){
                                drawData['shape_'+i].ellipsePath=true;
                                drawData['shape_'+i].pathPoints=[Math.round(thisShp.left), Math.round(-thisShp.top), Math.round(thisShp.width), Math.round(thisShp.height)];
                                canvas.newPath();
                                canvas.ellipsePath(Math.round(thisShp.left), Math.round(-thisShp.top), Math.round(thisShp.width), Math.round(thisShp.height));
                            } else {
                                var vectorPts=thisShp.pathPoints;
                                canvas.newPath(); canvas.moveTo(Math.round(vectorPts[0].anchor[0]),-Math.round(vectorPts[0].anchor[1]));
                                for(var j=0; j<vectorPts.length; j++){
                                    var thisAnchor=vectorPts[j].anchor;
                                    var x=Math.round(thisAnchor[0]), y=-Math.round(thisAnchor[1]);
                                    drawData['shape_'+i].pathPoints.push([x,y]);
                                    canvas.lineTo(x,y);
                            if(thisShp.closed || drawData['shape_'+i].ellipsePath==true){
                                drawData['shape_'+i].closed=true;
                                if(drawData['shape_'+i].ellipsePath!=true){
                                    canvas.closePath();
                            } else {
                                drawData['shape_'+i].closed=false;
                            if(thisShp.filled){
                                var clr=thisShp.fillColor;
                                var colorArray=convertToUIRGB(clr);
                                var myBrush=canvas.newBrush(canvas.BrushType.SOLID_COLOR,colorArray);
                                drawData['shape_'+i].fillColor=colorArray;
                                canvas.fillPath(myBrush);
                            if(thisShp.stroked){
                                var clr=thisShp.strokeColor;
                                var colorArray=convertToUIRGB(clr);
                                var myPen=canvas.newPen(canvas.PenType.SOLID_COLOR,[colorArray[0],colorArray[1],colorArray[2] ,1], Math.round(thisShp.strokeWidth));
                                drawData['shape_'+i].strokeColor=colorArray;
                                drawData['shape_'+i].strokeWidth=Math.round(thisShp.strokeWidth);
                                canvas.strokePath(myPen);
                    // docArt is lately the layers[0].pageItems
                    // draws a preview and creates a drawing data object resource.
                    var drawData={total:0}; //Put drawing shapes here.  Properties: stroke (rgb color | null), fill (rgb color | null), pathPoints
                    var canvas=graphicDisplay.graphics;
                    vectors=function(){
                        var arr=[];
                        for(var i=0; i<docArt.length; i++){
                            var thisShp=docArt[i];
                            if(thisShp.typename=='PathItem' && thisShp.parent.typename!="GroupItem"){
                                if((thisShp.filled || thisShp.stroked) && thisShp.editable==true){
                                    arr.push(thisShp);
                            } else if(thisShp.typename=='GroupItem'){
                                if(thisShp.pathItems.length>0){
                                    var smArr=[];
                                    for(var j=0; j<thisShp.pathItems.length; j++){
                                        var thisPth=thisShp.pathItems[j];
                                        if((thisPth.filled || thisPth.stroked) && thisPth.editable==true){
                                            smArr.push(thisPth);
                                    if(smArr.length>0){arr.push(smArr);};
                        return arr;
                    drawData.total=vectors.length;
                    for(var i=vectors.length-1; i>-1; i--){
                        var thisShp=vectors[i];
                        if(thisShp instanceof Array){
                            var grpObj={};
                            for(var j=thisShp.length-1; j>-1; j--){
                                var thisPth=thisShp[j];
                                capturePathItem(thisPth, grpObj, j);
                            grpObj.total=thisShp.length;
                            var grpNm=function(){
                                if(thisShp[0].parent.name!=''){
                                    return thisShp[0].parent.name+"_";
                                return '';
                            drawData['group_'+grpNm+i]=grpObj;
                        } else {
                            capturePathItem(thisShp, drawData, i);
                    return drawData;
                function showDrawerFunc(objStringDisplay, wDims){
                    var w2=new Window('dialog','Drawer Function');
                    var containerG=w2.add('tabbedpanel');
                        var funcG=containerG.add('tab',undefined,'Drawer Function');
                            var dispE=funcG.add('edittext',undefined,funcSrc,{multiline:true}); dispE.size=[580,200];
                            var selBtn=funcG.add('button',undefined,'Select All');
                        var drawingG=containerG.add('tab',undefined,'Drawing:');
                            var drawG=drawingG.add('group');
                                var drawP=drawG.add('panel',undefined,''); drawP.size=[wDims.width, wDims.height];
                    var msgCntr=w2.add('panel',undefined,'Message Center:');
                        var msgE=msgCntr.add('edittext',undefined,'',{multiline:true});msgE.size=[560,40];
                    var btnG=w2.add('group');
                        var okBtn=btnG.add('button',undefined,'Ok',{name: 'ok'});
                    selBtn.onClick=function(){
                        dispE.active=false; dispE.active=true;
                    drawG.onDraw=function(){
                        if(objStringDisplay.text!=''){
                            try{
                                drawFromObjString(objStringDisplay.text, this);
                            } catch(e){
                                msgE.text=("Something isn't right:\r"+e);
                        } else {
                            msgE.text=('You must first put a valid object string into the object string display area--> "Get Source Object String" button, 1st window, 1st tab.');
                    w2.show();
                function instructions(){
                    var w3=new Window('dialog','instructions');
                    var instructions=w3.add('edittext',undefined,'',{multiline:true}); instructions.size=[400,100];
                    instructions.text="1)  Have a document open, smaller than 600x400.\r\r"+
                        "2)  Draw some stuff- use paths only, straight lines or ellipses only. To have script explicitly recognize ellipse, "+
                        "label the path 'cir', 'circle', or 'ellipse'. Right now there's a function to detect (non-rotated) ellipses, but it is coarse.\r\r"+
                        "3)  Run this script and see if your drawing was captured in the main window.\r\r"+
                        "4)  Click the 'Get Object String' button and see the drawing instruction string appear.\r\r"+
                        "5)  Click the 'View Drawer Function/Drawing' button to see the function used to draw scriptUI picture from"+
                        " the object string and use other tab to see the drawing made with this function from that object string.\r\r"+
                        "6)  Edit your string to see your picture change if needed!";
                    var okBtn=w3.add('button',undefined,'OK');
                    w3.show();
                var funcSrc=drawFromObjString.toSource();
                var dispWindow=function(){
                    var drawData;
                    var w=new Window('dialog','ScriptUI Graphics Display');
                    var panel=w.add('panel',undefined,''); panel.size=[wDims.width+6,wDims.height+6];
                    var list=w.add('edittext',undefined,'',{multiline:true}); list.size=[wDims.width,150];
                    var formatG=w.add('group');
                        var formatH=formatG.add('statictext',undefined, 'Format:');
                        var format_returns=formatG.add('button',undefined, 'Returns before "(group|shape)_"');
                    var btnsG=w.add('group');
                        var clickBtn=btnsG.add('button',undefined,'Get Source Object String');
                        var selectBtn=btnsG.add('button',undefined,'Select All');
                    var btnG2=w.add('group');
                        var funcBtn=btnG2.add('button',undefined,'See Drawer Function/Drawing');
                        funcBtn.helpTip='Uses the Object String picture info to draw using ScriptUIGraphics lineTo commands.';
                        var helpBtn=btnG2.add('button',undefined,'?'); helpBtn.size=[25,25];
                    panel.onDraw=function(){
                        drawData=drawCapture(doc.layers[0].pageItems, list, this);
                    clickBtn.addEventListener('mousedown',function(){
                        list.text=drawData.toSource();
                    format_returns.onClick=function(){
                        var str=list.text;
                        var rx=/(group|shape)_/g;
                        if(str!=''){
                            var rx=/(group_|shape_)/g;
                            var matches=str.match(rx);
                            for(var i=0; i<matches.length; i++){
                                var instance = rx.exec(str);
                                str=str.substring(0, rx.lastIndex-instance[0].length)+str.substr(rx.lastIndex-instance[0].length,).replace(ins tance[0],"'+\r'"+instance[0]);
                        list.text="'"+str+"';";
                    funcBtn.onClick=function(){
                        showDrawerFunc(list, wDims);
                    helpBtn.onClick=function(){
                        instructions();
                    selectBtn.onClick=function(){
                        list.active=false; list.active=true;
                    var okBtn=w.add('button',undefined,'OK');
                    w.show();
            } else {
                alert('Please use a document with main artboard no larger than 600x400.');
        } else {
            alert('Must run in Illustrator with at least 1 document open.');
    graphicsDisplay();

  • OpenGL 2.0 graphics capability

    i was wondering if anyone is able to help me please? I have a iphone 3 8GB which is currently on version 4.2.1. When i try and install an app it tells me i need openGL 2.0 graphics. Ive tried updating my itunes to the latest version and then updating my iphone but it still says version 4.2.1 is the latest! any ideas how to get this openGL 2.0 graphics?

    4.2.1 is the latest OS compatible with your 3G. Your hardware is four generations old and cannot run more current operating systems.

  • Camera Window pops the message "Cannot detect Camera, Check connection to camera, then retry"

    I have installed Camera Window in my Windows 8.1 laptop. The moment I invoke Camera window, there is a popup which shows . "Cannot detect Camera, Check connection to camera, then retry. I do not have this issue in my iPAD though. Has anyone come across this issue..?Thanks

    zebah_alfred,
    Please make sure you have the latest versions of the software installed by downloading them from our website.  Please click HERE to go to the download page.
     1.  Are you connecting to your computer with a USB cable or over Wi-Fi?
     2.  Are there any other devices connected to your computer other than the camera, aside from a keyboard and mouse of course?
    If this is a time sensitive-matter, additional support options are available at Contact Us.
    Did this answer your question? Please click the Accept as Solution button so that others may find the answer as well.

  • Help updating ATI graphics driver in bootcamp Windows 8.1 on iMac (Retina 5K, 27-inch) with 4 GHz Intel core i7, 16 GB 1600 MHz DDR3 and AMD Radeon R9 M295x 4096MB

    Help updating ATI graphics driver in bootcamp Windows 8.1 on iMac (Retina 5K, 27-inch) with 4 GHz Intel core i7, 16 GB 1600 MHz DDR3 and AMD Radeon R9 M295x 4096MB

    Of note there is a new AMD Catalyst Omega driver released earlier in the week that brings 5K resolution to AMD graphics cards. Here is the link (support.ad.com/en-us/download) to the AMD site. But none of these work with my iMac (Retina 5K, 27-inch, Late 2014), Windows 8 bootcamp.
    Please advise.
    Thanks in advace.

  • Canon Utilities Camera Window DC has encountered a problem and needs to close

     I just purchased Powershot SX260 HS. I loaded the software and all works except the Camera Window. I keep getting the message encountered a problem and needs to close. I have tried uninstalling all of the software on my PC related to canon (this is not my first canon) and reinstalling the software that came with the sx260 but this did not work. Any suggestions?
    Joel

    Hi BrianT!
    Please download the update to CameraWindow DC 8.8 from the Canon USA website below:
    http://www.usa.canon.com/cusa/consumer/products/cameras/digital_cameras/powershot_sx260_hs#DriversAn...
    If this is a time sensitive-matter, additional support options are available at Contact Us.
    Did this answer your question? Please click the Accept as Solution button so that others may find the answer as well.

  • Camera Window for Android not available in my Country

    Hi everyone, Ive just bought a new G16. One of the most important features that made my pay more than 100 over the G15 is of course  the added wifi capability. But I happen to live in Argentina, and Camera Window app is not available for my country in Google Play. 
    Do someone solved this? Can anybody help?
    thnks a lot

    Having the same problem in Argentina. I've tried downloading a VPN program first but still ending up in Google Play getting same response. Have you been able to solve this?
    Regards, JB.

  • SAPScript: Positioning a Window (Graphic) behind the main window

    Hello,
    I want to print a graphic behind the main window. But I am not able positioning a window or graphic-window behind the main window. The result is that my graphic always shows up in front of the printed text of the main window and not behind the text of the main window, as I wish. I thought that the order of the windows determines which windows is on top? But I am not able of putting a window before the 'MAIN' design window.
    Regards, Lars.

    Hi Lars
    Please check the following thread:
    ABAP Development
    /: BITMAP MYLOGO OBJECT GRAPHICS ID BMAP TYPE BMON
    I think, trick must be in 'TYPE'.
    Try to explore what options you can have (here it is BMON). I will also try.
    Regards
    Ashish Jain

  • After updating Camera Window DC, camera lens will not open

    I had been for a few years using with no problems my Powershot SX100 IS with the software provided at the time of purchase on an earlier Macmini. I would connect the power cable and usb cable and was able to take macro photos of coins etc.
    I recently switched to a new Macmini and installed the software from CD (solution disk ver. 31.1) that accompanied the PowerShot when purchased. I did notice not everything was able to install as previously. So I updated from the software on your site to  include Camera Window 8.9.1.5, but now my PowerShot SX100 IS lens will not open while connected to my Mac.
    The software installed is as follows: ibxm-inst-1-1-0-17-u01-9l.dmg.gz, psx-upd-3-2-6-28-r8-u03-9l.dmg.gz and cdx-inst-8-9-1-5-u01-9l.dmg.gz.
    What can I do?

    footlooze,
    Because of how new OS 10.9.1 is, there is not a version of CameraWindow DC that is officially compatible yet.  I recommend that you continue to visit the website as new updates are made available in the future.
    Find more help at Contact Us.
    Did this answer your question? Please click the Accept as Solution button so that others may find the answer as well.

  • Premiere freezes when shuttling left in multi-camera window

    Ever since I upgraded to CS4, if I shuttle left (press J) while stopped inside the Multi-Camera window, Premiere will freeze. Sometimes its 3-5 seconds, sometimes its for good. While the interface doesn't completely lock up (I can click on things), if I try to stop and re-play something using the mouse, there will continue to be a delay. If I shuttle left while playing inside Multi-Camera, however, it works fine. I do not encounter this type of freezing anywhere else in the software (if I shuttle left from the actual timeline, not Multi-Camera, its fine).
    I'm using CS4 on the Mac. This never happened in CS3. Because of the annoying behavior of Multi-Camera, if I do live switching, making an edit mark when I stop playing, I have to constantly start and stop when making my edits, so this rewind behavior is EXTREMELY annoying. And because I do 90% of my work inside Multi-Camera, I can't escape the problem.
    Is this happening to anyone else?? Any suggestions?

    I'll try to reproduce on my end.  in the meantime, have you tried something as simple as this? http://blogs.adobe.com/genesisproject/2009/11/having_weird_behavior_with_an.html
    You might also try cleaning your media cache (prefs>media I think).
    Hope this helps,
    Dennis

  • Why is the Record button not there in MULTI-CAMERA window

    I don't have a RECORD BUTTON in MULTI-CAMERA window.  Master Collection, Prem Pro CS6.
    I've put 6 camera sources togther, used IN Points, selected all, opened Multicamera window, I can select which camera source in multicam window but I dont have a RECORD button.
    Watching Multi cam enhanced  http://tv.adobe.com/watch/digital-video-cs6/expanded-multicam-editing-in-premiere-pro-cs6/  ............I should have a record button, so as I change the source it RECORDS, but I have NO RECORD button in my version.
    Prem Pro CS6
    PC
    3.3ghz i7
    64 GB RAM
    Plenty HD incl SSD

    My guess is that you didn't actually open the Multi-Camera Monitor, but just loaded the multicam sequence into the Source Monitor.

  • Can't add graphic to podcast submission window

    I posted a video podcast to iTunes but I can't drag a graphic into the submission window. I am using Freestyle so its the skateboarder. When the podcast appears in iTunes it just has a grey square graphic.
    Any ideas?

    Here is what the help page says.
    Make sure the "Allow Podcast in iTunes Music Store" checkbox is selected >and >then choose File > Submit Podcast to iTunes.
    In the Submit window, enter the information you want to include in your >podcast.
    Some information—such as the fields you completed in step 3—may already >appear in the Submit window.
    If you have artwork you want to appear with your podcast, drag it to the >graphic placeholder at the top of the Submit window.
    Click “Publish and Submit.”
    In the freestyle template there is a graphic of a guy jumping on a skateboard. I am guessing that this photo is the "graphic placeholder" I still can't replace that photo.
    The update didn't change anything in this submit podcast window that I could see.

Maybe you are looking for

  • ORA-27090 at startup

    Hi, i have the following issue on a new 10.2.04 instance on linux SLES10SP2. I created a new instance and imported a 9.2.0.8 database to it to migrate. No problems so far. I have built up several instances this way and the work until today. Now my SQ

  • Why my iPhone5C is getting Hang after updating to iOS8?

    After updating to iOS8 my iPhone5C is getting Hang Frequently once or twice a day. Please fix this problem releasing stable OS. Not only I am having same problem some of my friends having iPhone5C and 5S are also having same. Please release iOS8.0.1

  • Adobe Reader X friert ein

    Mein System ist Windows XP SP3 mit allen Patchdays eingepielt; AVIRA Pro ist der Virenscanner, nur die Windows eigene Firewall. - Adobe Reader (im weiteren AR) 9.4. deinstalliert - keine Probleme. - AR X installiert - keine Probleme. - AR aufgerufen,

  • Who's Who with Structural Authorisations

    Hi, We have implemented structural authorisation. When manager logins to portal and view Who's who he is able to see only team members data. Instead our requirement is to view all the employees data in Who's who though manager has structural authoris

  • Supporting locking landscape orientation

    It's really convinent to lock the landscape orientation when reading. So will the future version of reader support it ?