Add slider to Datagrid?

Is it possible to add a cursor to a datagrid control. Basically, a column of sliders.

I use a movieclip with a slider component and assign a class that extends MovieClip and implement ICellRenderer.

Tags: Adobe Animate

Similar Questions

  • Can you guys please add "slide to unlock" iOS 10

    Can you guys please add "slide to unlock" iOS 10, I use a mini ipad 2 and its got no contact ID.

    It is very annoying to press home to unlock.

    Please Apple, my mini 2 still works and I don't want to change your ipad with touch ID now.

    I will buy another if my mini 2 cant function more. But please, add slide to unlock to ios 10 so that I can still enjoy my mini 2

    Apple will probably not bring the 'slide to unlock' feature back since it has been deleted just today. You don't need to have an iPad with Touch ID to unlock but. Pressing the Home button will do exactly the same thing that slide to unlock did, just without swiping.

  • Cannot add slides (by copy, import, insert)

    Hi guys,.

    My problem is that I can't add a new slide to my project. Import from other projects, inserting a slide blank, copy doesn't work and causes the crash of the application. CP farm by some, try to run one of these actions.

    Can I make changes to othe project: new audio recording, editing of slides and remove them, but even after the removal of half of the project does not allow to add slides.

    I use Windows XP, Flash edition 4.0.0 CP.

    Any ideas?

    I tried to use some slides from this project and copy or to import them to the new, but even small blades numbers the application crashes and closes.

    Would appreciate your help.

    Joanna

    Hello

    First, you might want to isolate the problem is bound to Captivate or just a single project. You do this by creating a totally new and fresh, space project. Then try to copy/paste or import a few slides.

    If it works, it means that Captivate is fine and the problem in this particular project.

    If it fails, perhaps a reinstall is needed, but you can try to reset the DAT file before you reinstall.

    To reset the DAT file, close Captivate and open Windows Explorer.

    Navigate to where resides the DAT file. On my PC under Windows XP Pro, it is located here:

    D:\Documents and Rick Data\Adobe\Adobe Captivate

    Your location will likely vary. For example, your drive letter is probably C. Your connected name will be different. And if you use Vista or Windows 7, the location is probably quite different. The location can be hidden on your part in Windows, then you need to adjust the display options for Windows Explorer to show you these files. (Tools > Folder Options > view > show hidden files and clear the skin protected operating system files.)

    Just rename or delete the dat file, you will find. Then restart Captivate.

    If the problem seems to be that with a single project, you must create a new empty project in the same dimensions. Then copy the slides in the broken project and paste it in the new.

    See you soon... Rick

    Useful and practical links

    Captivate wish form/Bug report form

    Certified Adobe Captivate training

    SorcerStone blog

    Captivate eBooks

  • Add numbering to datagrid

    Hello everyone

    I have a question, how can we add numbering of rows that are displayed in the DataGrid component IE that I load the xml file, and next to each line, I want to see his number. And if I add / deletes the line I want to see the change his number.

    Thanks in advance for the help

    There is an error in your logic.  Copy and paste the minimum code required to demonstrate your faulty coding.

  • Add slide County without including all slides

    I want to include the current screen number and the total number of slides. I am currently using screen $$cpInfoCurrentSlide$ $ $ $rdinfoSlideCount$ $ in a text caption. There are four slides I do not want to include in the numbering and counting. Is there a way to handle this, so I did not need to manually enter a slide number and the total number for each slide? Again, any help is greatly appreciated and has been wonderful so far.

    For the total number of slides: create a user variable, I'll label it v_totalslides and at the entrance to the first slide action of the art with these statements:

    • Expression v_totalslides = rdinfoSlideCount - a (where A is the number of slides you want to subtract)
    • Continue to avoid this playhead stops

    You can then use this variable instead of the variable system for the text caption you have put on the master slide.

    Current slide: are the hidden slides that you do not want to include? Could you explain, perhaps I can offer you a solution in this case.

    Lilybiri

  • Adding slides by Option + up/down

    In numbers you can add rows or columns by Option + up/down. Why add slide by Option + up/down arrow is not available? Keynote 6.6.1 Mac OS X

    You add a new slide in Keynote using: Control Shift N

    In Keynote, , Pages and Numbersoption arrow up, adds a new line to an existing table.

  • Java blackBerry Slider Bar

    HII, I created a scroll bar by referring to the example:https://github.com/blackberry/Samples-for-Java/blob/master/Advanced%20UI/src/com/samples/toolkit/ui/...,.

    hereby I am slider properly displayed on my screen, but my problem is next to the slider bar, I want to show a play/pause button, so i used the code below:

    SerializableAttribute public class UIExampleSliderScreen extends UIExampleScreen {}
    private ButtonField _startPlayingButton;
    Private ButtonField stop;

    private ButtonField facebookButton;

    public UIExampleSliderScreen() {}
    Super (0);
    _startPlayingButton = new ButtonField ("Play");
    stop = new ButtonField ("Stop");

    facebookButton = new ButtonField ("Facebook");
    facebookButton.setMargin (5, 5, 5, 5);
    HorizontalFieldManager Manager = new HorizontalFieldManager();

    setTitle ("cursor screen");
    final SliderField cursor;
    cursor = new SliderField)
    Bitmap.getBitmapResource ("slider2_thumb_normal.png"),
    Bitmap.getBitmapResource ("slider2_progress_normal.png"),
    Bitmap.getBitmapResource ("slider2_base_normal.png"),
    Bitmap.getBitmapResource ("slider2_thumb_focused.png"),
    Bitmap.getBitmapResource ("slider2_progress_focused.png"),
    Bitmap.getBitmapResource ("slider2_base_focused.png"), 20,
    0, 16, 16, FOCUSABLE).
    slider.setPadding (20, 20, 20, 20);

    slider.setBackground (BackgroundFactory
    .createSolidBackground (0xD3D3D3));

    Manager.Add (Slider);

    Manager.Add (facebookButton);

    Manager.Add (_startPlayingButton);
    Manager.Add (Stop);
    Add (Manager);

    }

    }
    }

    (1) I am able to show only the slide bar, my custom buttons are not displayed?

    (2) the sliding bar is displayed on screen, fully, how can I reduce the length of my slide Bar?

    the field of cursor seems to be designed to occupy the entire width:
    public int getPreferredWidth()
    {
    Return Integer.MAX_VALUE;
    }

    you have to change this, or replace available to the Manager.
    See
    http://supportforums.BlackBerry.com/T5/Java-development/how-to-extend-Manager/Ta-p/446749

  • change the "timing" on several video slide

    I have a Captivate multiple sliders and inserted a video synchronized to multiple sliders which was spread over several slides.

    After inserting the video, I had to extend the time of a slide. Now, I want to split the video differently so that the video is the same length as the elongated slide.

    Someone knows how to do or have any suggestions?

    Hi Jay,.

    First, you will need to add slides and specify the time for all slides inserted.

    and then you insert slides synchronized multi video.

    After inserting multi-synchronise video and distributing on the slides, you can increase the duration of the slide, but you cannot change the length of the inserted part of the video.

    Thank you.

  • Script ui - slider problem

    Hey,.

    is it possible to do a "slider" that control the opacity of the current layer?

    Yes, it is possible. It is not a smooth surface as the GUI cursor but works.

    var d= new Window('dialog');
              d.grpOpacity = d.add('group');
              d.grpOpacity.orientation = 'column';
              d.grpOpacity.alignChildren = ['fill','top'];
              d.grpOpacity.grpSlider = d.grpOpacity.add('group');
              d.grpOpacity.grpSlider.spacing = 0;
              d.grpOpacity.grpSlider.orientation = 'column';
              d.grpOpacity.grpSlider.st1 =  d.grpOpacity.grpSlider.add('statictext',undefined,'Opacity');
              d.grpOpacity.grpSlider.st1.alignment = 'left';
              d.grpOpacity.grpSlider.grpSlider = d.grpOpacity.grpSlider.add('group');
              d.grpOpacity.grpSlider.grpSlider.alignChildren = ['left','center'];
              d.grpOpacity.grpSlider.grpSlider.spacing = 0;
              d.slOpacity = d.grpOpacity.grpSlider.grpSlider.add('slider',undefined,0,0,100);
              d.slOpacity.value = app.activeDocument.activeLayer.opacity;
              d.slOpacity.preferredSize.width = 200;
              d.etOpacityValue = d.grpOpacity.grpSlider.grpSlider.add('edittext');
              d.etOpacityValue.text = Math.round(app.activeDocument.activeLayer.opacity);
              d.etOpacityValue.addEventListener ('keydown', InitEditKeyboardHandler );
              d.etOpacityValue.preferredSize.width = 40;
              d.grpOpacity.grpSlider.grpSlider.stUnit = d.grpOpacity.grpSlider.grpSlider.add('statictext',undefined,'%');
    
              d.grpOpacity.grpSlider.grpSt = d.grpOpacity.grpSlider.add('group');
              d.grpOpacity.grpSlider.grpSt.orientation = 'row';
              d.grpOpacity.grpSlider.grpSt.alignment = 'fill';
              d.grpOpacity.grpSlider.grpSt.spacing = 0;
              d.grpOpacity.grpSlider.grpSt.margins = [5,0,0,0];
              d.grpOpacity.grpSlider.grpSt.grpLeft = d.grpOpacity.grpSlider.grpSt.add('group');
              d.grpOpacity.grpSlider.grpSt.grpLeft.st1 = d.grpOpacity.grpSlider.grpSt.grpLeft.add('statictext',undefined,'0');
              d.grpOpacity.grpSlider.grpSt.grpLeft.st1.alignment = ['left','center'];
              d.grpOpacity.grpSlider.grpSt.grpLeft.st1.preferredSize.width = 150;
              d.grpOpacity.grpSlider.grpSt.grpLeft.st3 = d.grpOpacity.grpSlider.grpSt.grpLeft.add('statictext',undefined,'100');
              d.grpOpacity.grpSlider.grpSt.grpLeft.st3.alignment = ['right','center'];
              d.grpOpacity.grpSlider.grpSt.grpLeft.st3.preferredSize.width = 40;
    
              d.grpButtons = d.add('group');
              d.grpButtons.alignment = "right";
              d.grpButtons.btnCanel = d.grpButtons.add( 'button', undefined, 'Cancel', { name:'cancel' });
              d.grpButtons.btnOK = d.grpButtons.add( 'button', undefined, 'Ok', { name:'ok' });
    
              d.etOpacityValue.onChanging = d.etOpacityValue.onChange = function(){
                                                                                                                  var d = FindDialog(this);
                                                                                                                  d.slOpacity.value = Number(this.text);
                                                                                                                  d.slOpacity.onChange();
    
                                                                                                                  }
              d.slOpacity.onChanging  = d.slOpacity.onChange = function(){
                                                                                    var d = FindDialog(this);
                                                                                    d.etOpacityValue.text = Math.round(this.value);
                                                                               }
           d.slOpacity.onChange = function(){
                                                                                    var d = FindDialog(this);
                                                                                    app.activeDocument.activeLayer.opacity = Math.round(this.value);
                                                                                    app.refresh();
                                                                               }
    
    d.show();
    
    function FindDialog( inItem ) {
         var w = inItem;
         while ( 'dialog' != w.type ) {
              if ( undefined == w.parent ) {
                   w = null;
                   break;
              }
              w = w.parent;
         }
         return w;
    };
    function InitEditKeyboardHandler (event) {
        try {
            var keyIsOK = KeyIsNumeric(event) ||
                                       KeyIsDelete(event) ||
                                       KeyIsLRArrow(event) ||
                                       KeyIsTabEnterEscape(event);
            if (! keyIsOK) {
                event.preventDefault();
                app.beep();
            }
        }
        catch (e) {
        }
    };
    //    key identifier functions
    function KeyIsNumeric ( event ) {
        return   ( event.keyName.match( /[0-9]/) != null ) && ! KeyHasModifier ( event );
    }
    function KeyIsPeriod ( event ) {
        return  ( event.keyName.match( /Period/) != null ) && ! KeyHasModifier ( event );
    }
    function KeyIsComma ( event ) {
        return  ( event.keyName.match( /Comma/) != null ) && ! KeyHasModifier ( event );
    }
    function KeyHasModifier ( event ) {
        return event.shiftKey || event.ctrlKey || event.altKey || event.metaKey;
    }
    function KeyIsDelete (event) {
        //    Shift-delete is ok
        return (event.keyName == 'Backspace') && ! (event.ctrlKey);
    }
    function KeyIsLRArrow (event) {
        return ((event.keyName == 'Left') || (event.keyName == 'Right')) && ! (event.altKey || event.metaKey);
    }
    function KeyIsTabEnterEscape (event) {
         return event.keyName == 'Tab' || event.keyName == 'Enter' || event.keyName == 'Escape';
    }
    
  • cannot reorganize the photos in slideshow Apple

    I create a slideshow of pictures 60 +. When I try to move the #2 slide later in the show, I can't it exceed slide 15. Fundamentally difficult to rearrange the slides. Suggestions appreciated.

    It depends on the theme for your slide show.  The more elaborate themes assign slides automatically to fill the models.  You cannot move a slide from portrait of a placeholder that needs a landscape slide.  If you want to be free to move slides autour, use the most basic themes - Classic or Ken Burns.

    It also helps to add slides as go you and not all at the same time. Slides will be added near the end of the slide show.

  • Overlap two images, ordinary java works, and not in BlackBerry JDE 5

    I have an application for swing of simple java that takes two images and overlaps the other. While trying to this port in JDE5, I got out there is no class BufferedImage in the api of BB, but a similar class of the Bitmap. It's brought to BB mixing function is unable to produce an image that overlap. It shows a blank white screen.

    Here's the plain java function

    public BufferedImage blend( BufferedImage bi1, BufferedImage bi2,            double weight )   {     if (bi1 == null)          throw new NullPointerException("bi1 is null");
    
          if (bi2 == null)          throw new NullPointerException("bi2 is null");
    
          int width = bi1.getWidth();       if (width != bi2.getWidth())          throw new IllegalArgumentException("widths not equal");
    
         int height = bi1.getHeight();     if (height != bi2.getHeight())
    
              throw new IllegalArgumentException("heights not equal");
    
            BufferedImage bi3 = new BufferedImage(width, height,              BufferedImage.TYPE_INT_RGB);      int[] rgbim1 = new int[width];        int[] rgbim2 = new int[width];        int[] rgbim3 = new int[width];
    
          for (int row = 0; row < height; row++)     {         bi1.getRGB(0, row, width, 1, rgbim1, 0, width);           bi2.getRGB(0, row, width, 1, rgbim2, 0, width);
    
             for (int col = 0; col < width; col++)          {             int rgb1 = rgbim1[col];               int r1 = (rgb1 >> 16) & 255;                int g1 = (rgb1 >> 8) & 255;             int b1 = rgb1 & 255;
    
                    int rgb2 = rgbim2[col];               int r2 = (rgb2 >> 16) & 255;                int g2 = (rgb2 >> 8) & 255;             int b2 = rgb2 & 255;
    
                    int r3 = (int) (r1 * weight + r2 * (1.0 - weight));               int g3 = (int) (g1 * weight + g2 * (1.0 - weight));               int b3 = (int) (b1 * weight + b2 * (1.0 - weight));               rgbim3[col] = (r3 << 16) | (g3 << 8) | b3;            }
    
               bi3.setRGB(0, row, width, 1, rgbim3, 0, width);       }
    
           return bi3;   } 
    

    Here's the java function of BB

      public Bitmap blend( Bitmap bi1, Bitmap  bi2,                      double weight )        {
    
                  if (bi1 == null)                       throw new NullPointerException("bi1 is null");
    
                    if (bi2 == null)                       throw new NullPointerException("bi2 is null");
    
                    int width = bi1.getWidth();            if (width != bi2.getWidth())                   throw new IllegalArgumentException("widths not equal");
    
                   int height = bi1.getHeight();          if (height != bi2.getHeight())
    
                            throw new IllegalArgumentException("heights not equal");
    
             Bitmap bi3 = new Bitmap(width, height);         int[] rgbim1 = new int[width];         int[] rgbim2 = new int[width];         int[] rgbim3 = new int[width];
    
                    for (int row = 0; row < height; row++)         {
    
                           bi1.getARGB(rgbim1,0,width,0,row, width,1);                       bi2.getARGB(rgbim2,0,width,0,row, width,1); 
    
                           for (int col = 0; col < width; col++)                  {                              int rgb1 = rgbim1[col];                                int r1 = (rgb1 >> 16) & 255;                           int g1 = (rgb1 >> 8) & 255;                            int b1 = rgb1 & 255;
    
                              int rgb2 = rgbim2[col];                                int r2 = (rgb2 >> 16) & 255;                           int g2 = (rgb2 >> 8) & 255;                            int b2 = rgb2 & 255;
    
                              int r3 = (int) (r1 * weight + r2 * (1.0 - weight));                            int g3 = (int) (g1 * weight + g2 * (1.0 - weight));                            int b3 = (int) (b1 * weight + b2 * (1.0 - weight));                            rgbim3[col] = (r3 << 16) | (g3 << 8) | b3;                     }
    
                         bi3.setARGB(rgbim3, 0, width, 0,  row,width, 1);
    
                    }
    
                 return bi3;    }
    

    The weight of the arg is a value from 1 to 100.

    For reference, the full plain java source

    /* * To change this template, choose Tools | Templates * and open the template in the editor. */
    
    package imagetest;
    
    /** * * @author COMPUTER */// Blender1.java
    
    import java.awt.*;import java.awt.image.*;
    
    import javax.swing.*;import javax.swing.event.*;
    
    /** * This class describes and contains the entry point to an application that * demonstrates the blending transition. */
    
    public class Blender1 extends JFrame{  /**    *     */   private static final long serialVersionUID = 1L;
    
        /**    * Construct Blender1 GUI.     */
    
     public Blender1() {     super("Blender #1");      setDefaultCloseOperation(EXIT_ON_CLOSE);
    
            // Load first image from JAR file and draw image into a buffered image.
    
         ImageIcon ii1 = new ImageIcon(getClass().getResource("x.png"));       final BufferedImage bi1;      bi1 = new BufferedImage(ii1.getIconWidth(), ii1.getIconHeight(),              BufferedImage.TYPE_INT_RGB);      Graphics2D g2d = bi1.createGraphics();        int h = ii1.getImage().getHeight(null);       System.out.println("Blender1.Blender1()--------> height :" + h);       g2d.drawImage(ii1.getImage(), 0, 0, null);        g2d.dispose();
    
          // Load second image from JAR file and draw image into a buffered image.
    
            ImageIcon ii2 = new ImageIcon(getClass().getResource("y.png"));       final BufferedImage bi2;      bi2 = new BufferedImage(ii2.getIconWidth(), ii2.getIconHeight(),              BufferedImage.TYPE_INT_RGB);      g2d = bi2.createGraphics();       int h2 = ii2.getImage().getHeight(null);      System.out.println("Blender1.Blender1()--------> height :" + h2);      g2d.drawImage(ii2.getImage(), 0, 0, null);        g2d.dispose();
    
          // Create an image panel capable of displaying entire image. The widths       // of both images and the heights of both images must be identical.
    
         final ImagePanel ip = new ImagePanel();       ip.setPreferredSize(new Dimension(ii1.getIconWidth(), ii1             .getIconHeight()));       getContentPane().add(ip, BorderLayout.NORTH);
    
           // Create a slider for selecting the blending percentage: 100% means      // show all of first image; 0% means show all of second image.
    
          final JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 100, 100);      slider.setMinorTickSpacing(5);        slider.setMajorTickSpacing(10);       slider.setPaintTicks(true);       slider.setPaintLabels(true);      slider.setLabelTable(slider.createStandardLabels(10));        slider.setInverted(true);     ChangeListener cl;        cl = new ChangeListener()     {         public void stateChanged( ChangeEvent e )         {             // Each time the user adjusts the slider, obtain the new              // blend percentage value and use it to blend the images.
    
                   int value = slider.getValue();                ip.setImage(blend(bi1, bi2, value / 100.0));          }     };        slider.addChangeListener(cl);     getContentPane().add(slider, BorderLayout.SOUTH);
    
           // Display the first image, which corresponds to a 100% blend     // percentage.
    
          ip.setImage(bi1);
    
           pack();       setVisible(true); }
    
       /**    * Blend the contents of two BufferedImages according to a specified weight.   *     * @param bi1  *            first BufferedImage  * @param bi2  *            second BufferedImage     * @param weight   *            the fractional percentage of the first image to keep     *     * @return new BufferedImage containing blended contents of BufferedImage  *         arguments   */
    
     public BufferedImage blend( BufferedImage bi1, BufferedImage bi2,         double weight )   {     if (bi1 == null)          throw new NullPointerException("bi1 is null");
    
          if (bi2 == null)          throw new NullPointerException("bi2 is null");
    
          int width = bi1.getWidth();       if (width != bi2.getWidth())          throw new IllegalArgumentException("widths not equal");
    
         int height = bi1.getHeight();     if (height != bi2.getHeight())
    
              throw new IllegalArgumentException("heights not equal");
    
            BufferedImage bi3 = new BufferedImage(width, height,              BufferedImage.TYPE_INT_RGB);      int[] rgbim1 = new int[width];        int[] rgbim2 = new int[width];        int[] rgbim3 = new int[width];
    
          for (int row = 0; row < height; row++)     {         bi1.getRGB(0, row, width, 1, rgbim1, 0, width);           bi2.getRGB(0, row, width, 1, rgbim2, 0, width);
    
             for (int col = 0; col < width; col++)          {             int rgb1 = rgbim1[col];               int r1 = (rgb1 >> 16) & 255;                int g1 = (rgb1 >> 8) & 255;             int b1 = rgb1 & 255;
    
                    int rgb2 = rgbim2[col];               int r2 = (rgb2 >> 16) & 255;                int g2 = (rgb2 >> 8) & 255;             int b2 = rgb2 & 255;
    
                    int r3 = (int) (r1 * weight + r2 * (1.0 - weight));               int g3 = (int) (g1 * weight + g2 * (1.0 - weight));               int b3 = (int) (b1 * weight + b2 * (1.0 - weight));               rgbim3[col] = (r3 << 16) | (g3 << 8) | b3;            }
    
               bi3.setRGB(0, row, width, 1, rgbim3, 0, width);       }
    
           return bi3;   }
    
       /**    * Application entry point.    *     * @param args     *            array of command-line arguments  */
    
     public static void main( String[] args )  {     Runnable r = new Runnable()       {         public void run()         {             // Create Blender1's GUI on the event-dispatching             // thread.
    
                  new Blender1();           }     };        EventQueue.invokeLater(r);    }}
    
    /** * This class describes a panel that displays a BufferedImage's contents. */
    
    class ImagePanel extends JPanel{ /**    *     */   private static final long serialVersionUID = 4977990666209629996L;    private BufferedImage bi;
    
       /**    * Specify and paint a new BufferedImage.  *     * @param bi   *            BufferedImage whose contents are to be painted   */
    
     void setImage( BufferedImage bi ) {     this.bi = bi;     repaint();    }
    
       /**    * Paint the image panel.  *     * @param g    *            graphics context used to paint the contents of the current   *            BufferedImage    */
    
     public void paintComponent( Graphics g )  {     if (bi != null)       {         Graphics2D g2d = (Graphics2D) g;          g2d.drawImage(bi, null, 0, 0);        } }}
    

    Full java BB source

    /* * ImageScreen.java * * © ,  * Confidential and proprietary. */
    
    package src;
    
    /** *  */
    
    import java.io.OutputStream;import javax.microedition.io.Connector;import javax.microedition.io.file.FileConnection;import net.rim.device.api.system.Bitmap;import net.rim.device.api.ui.Field;import net.rim.device.api.ui.FieldChangeListener;import net.rim.device.api.ui.UiApplication;import net.rim.device.api.ui.component.BitmapField;import net.rim.device.api.ui.component.ButtonField;import net.rim.device.api.ui.component.Dialog;import net.rim.device.api.ui.component.LabelField;import net.rim.device.api.ui.container.HorizontalFieldManager;import net.rim.device.api.ui.container.MainScreen;import net.rim.device.api.ui.component.GaugeField;/** * The main screen to display an image taken from the camera demo. */public final class ImageScreen extends MainScreen{    /** The down-scaling ratio applied to the snapshot Bitmap */    private static final int IMAGE_SCALING = 7;
    
        /** The base file name used to store pictures */    private static final String FILE_NAME = System.getProperty("fileconn.dir.photos") + "IMAGE";
    
        /** The extension of the pictures to be saved */    private static final String EXTENSION = ".bmp";
    
        /** A counter for the number of snapshots taken */    private static int _counter;    Bitmap image1,image2; BitmapField imageField;     /** A reference to the current screen for listeners */    private ImageScreen _imageScreen;
    
       /**    * Constructor    * @param raw A byte array representing an image    */    public ImageScreen( final byte[] raw1,final byte[] raw2 )    {        // A reference to this object, to be used in listeners        _imageScreen = this;
    
            setTitle("Blend and Save");
    
            // Convert the byte array to a Bitmap image        image1 = Bitmap.createBitmapFromBytes( raw1, 0, -1, 1 );        image2 = Bitmap.createBitmapFromBytes( raw2, 0, -1, 1 );        // Create two field managers to center the screen's contents        HorizontalFieldManager hfm1 = new HorizontalFieldManager( Field.FIELD_HCENTER );        HorizontalFieldManager hfm2 = new HorizontalFieldManager( Field.FIELD_HCENTER );        HorizontalFieldManager hfm3 = new HorizontalFieldManager( Field.FIELD_HCENTER );        // Create the field that contains the image//blend(image1, image2, 50/ 100.0)        imageField = new BitmapField(blend(image1, image2, 50/ 100.0) ){
    
               public int getPreferredWidth(){ return 250;}           public int getPreferredHeight(){ return 150;}
    
             };
    
            hfm1.add( imageField ); 
    
            GaugeField scroller = new GaugeField("Adjust (alt + < >)",0,100,50,Field.EDITABLE | Field.FOCUSABLE);        //scroller.setBackground( net.rim.device.api.ui.decor.BackgroundFactory.createSolidBackground(0x00000000));          scroller.setChangeListener( new GaugeFieldListener() );         hfm2.add(scroller);         // Create the SAVE button which returns the user to the main camera        // screen and saves the picture as a file.        ButtonField photoButton = new ButtonField( "Save" );        photoButton.setChangeListener( new SaveListener(raw1,raw2) );        hfm3.add(photoButton);
    
            // Create the CANCEL button which returns the user to the main camera        // screen without saving the picture.        ButtonField cancelButton = new ButtonField( "Cancel" );        cancelButton.setChangeListener( new CancelListener() );        hfm3.add(cancelButton);
    
            // Add the field managers to the screen        add( hfm1 );        add( hfm2 );        add( hfm3 );scroller.setFocus();//scroller.setValue(50);    }    public Bitmap blend( Bitmap bi1, Bitmap  bi2,                      double weight )        {
    
                  if (bi1 == null)                       throw new NullPointerException("bi1 is null");
    
                    if (bi2 == null)                       throw new NullPointerException("bi2 is null");
    
                    int width = bi1.getWidth();            if (width != bi2.getWidth())                   throw new IllegalArgumentException("widths not equal");
    
                   int height = bi1.getHeight();          if (height != bi2.getHeight())
    
                            throw new IllegalArgumentException("heights not equal");
    
             Bitmap bi3 = new Bitmap(width, height);         int[] rgbim1 = new int[width];         int[] rgbim2 = new int[width];         int[] rgbim3 = new int[width];
    
                    for (int row = 0; row < height; row++)         {            // bi -> int startX, int startY, int w, int h, int[] rgbArray, int offset, int scansize) 
    
                 // bit - > int[] argbData, int offset, int scanLength, int x, int y, int width, int height) 
    
                           bi1.getARGB(rgbim1,0,width,0,row, width,1);//  row, width, 1, , 0, width);                       bi2.getARGB(rgbim2,0,width,0,row, width,1); 
    
                           //bi1.getRGB(0, row, width, 1, rgbim1, 0, width);                       //bi2.getRGB(0, row, width, 1, rgbim2, 0, width);
    
                           for (int col = 0; col < width; col++)                  {                              int rgb1 = rgbim1[col];                                int r1 = (rgb1 >> 16) & 255;                           int g1 = (rgb1 >> 8) & 255;                            int b1 = rgb1 & 255;
    
                              int rgb2 = rgbim2[col];                                int r2 = (rgb2 >> 16) & 255;                           int g2 = (rgb2 >> 8) & 255;                            int b2 = rgb2 & 255;
    
                              int r3 = (int) (r1 * weight + r2 * (1.0 - weight));                            int g3 = (int) (g1 * weight + g2 * (1.0 - weight));                            int b3 = (int) (b1 * weight + b2 * (1.0 - weight));                            rgbim3[col] = (r3 << 16) | (g3 << 8) | b3;                     }                    //bi -> int startX, int startY, int w, int h, int[] rgbArray, int offset, int scansize)                     //bit -> (int[] data, int offset, int scanLength, int left, int top, int width, int height)                      bi3.setARGB(rgbim3, 0, width, 0,  row,width, 1);
    
                        // bi3.setRGB(0, row, width, 1, rgbim3, 0, width);                }
    
                 return bi3;    }
    
       /**    * Handles trackball click events    * @see net.rim.device.api.ui.Screen#invokeAction(int)    */       protected boolean invokeAction(int action)    {        boolean handled = super.invokeAction(action); 
    
            if(!handled)        {            switch(action)            {                case ACTION_INVOKE: // Trackball click.                {                                 return true;                }            }        }                return handled;              }
    
     /**    * A listener used for the "Save" button    */    private class GaugeFieldListener implements FieldChangeListener    {        public void fieldChanged(Field field, int context)        {          int value =  ((GaugeField)field).getValue(); if (value==0){return;}          imageField.setBitmap( blend(image1, image2, value/ 100.0) );          ((GaugeField)field).setLabel("Adjust (alt + < >)"+value);        }    }   /**    * A listener used for the "Save" button    */    private class SaveListener implements FieldChangeListener    {        /** A byte array representing an image */        private byte[] _raw1,_raw2;
    
           /**        * Constructor.        * @param raw A byte array representing an image        */        SaveListener(byte[] raw1,byte[] raw2)        {            _raw1 = raw1;            _raw2 = raw2;        }
    
           /**        * Saves the image as a file in the BlackBerry filesystem        */        public void fieldChanged(Field field, int context)        {            try            {                       // Create the connection to a file that may or                // may not exist.                FileConnection file = (FileConnection)Connector.open( FILE_NAME + _counter + EXTENSION );
    
                    // If the file exists, increment the counter until we find                // one that hasn't been created yet.                while( file.exists() )                {                    file.close();                    ++_counter;                    file = (FileConnection)Connector.open( FILE_NAME + _counter + EXTENSION );                }
    
                    // We know the file doesn't exist yet, so create it                file.create();
    
                    // Write the image to the file                OutputStream out = file.openOutputStream();                out.write(_raw1);
    
                    // Close the connections                out.close();                file.close();            }            catch(Exception e)            {                Dialog.alert( "ERROR " + e.getClass() + ":  " + e.getMessage() );            }
    
                // Inform the user where the file has been saved            Dialog.inform( "Saved to " + FILE_NAME + _counter + EXTENSION );
    
                // Increment the image counter            ++_counter;
    
                // Return to the main camera screen            UiApplication.getUiApplication().popScreen( _imageScreen );        }    }
    
       /**    * A listener used for the "Cancel" button    */    private class CancelListener implements FieldChangeListener    {       /**        * Return to the main camera screen        */        public void fieldChanged(Field field, int context)        {            UiApplication.getUiApplication().popScreen( _imageScreen );        }    }}
    

    Yes, your original code:

    for (int col = 0; col < width; col++){int rgb1 = rgbim1[col];int r1 = (rgb1 >> 16) & 255;int g1 = (rgb1 >> 8) & 255;int b1 = rgb1 & 255;
    
    int rgb2 = rgbim2[col];int r2 = (rgb2 >> 16) & 255;int g2 = (rgb2 >> 8) & 255;int b2 = rgb2 & 255;
    
    int r3 = (int) (r1 * weight + r2 * (1.0 - weight));int g3 = (int) (g1 * weight + g2 * (1.0 - weight));int b3 = (int) (b1 * weight + b2 * (1.0 - weight));rgbim3[col] = (r3 << 16) | (g3 << 8) | b3;}
    

    Labour Code:

    for (int col = 0; col < width; col++)
    {
    int rgb1 = rgbim1[col];
    int a1 = (rgb1 >> 24) & 255;
    int r1 = (rgb1 >> 16) & 255;
    int g1 = (rgb1 >> 8) & 255;
    int b1 = rgb1 & 255;
    
    int rgb2 = rgbim2[col];
    int a2 = (rgb2 >> 24) & 255;
    int r2 = (rgb2 >> 16) & 255;
    int g2 = (rgb2 >> 8) & 255;
    int b2 = rgb2 & 255;
    
    int a3 = (int) (a1 * weight + a2 * (1.0 - weight));
    int r3 = (int) (r1 * weight + r2 * (1.0 - weight));
    int g3 = (int) (g1 * weight + g2 * (1.0 - weight));
    int b3 = (int) (b1 * weight + b2 * (1.0 - weight));
    rgbim3[col] = (a3 << 24) | (r3 << 16) | (g3 << 8) | b3;
    }
    
  • How to make a single screen?

    I followed the tutorial here:

    https://developer.BlackBerry.com/Cascades/documentation/UI/navigation/single_screen.html

    I'm doing a single screen. My code is below, but I get the following errors.

    Any ideas what goes wrong?

     Page* myPage = new Page;
        Container* rootContainer = new Container;
    
        rootContainer->add(Label::create("A label"));
        rootContainer->add(Button::create("A button"));
        rootContainer->add(Slider::create());
    
        myPage->setContent(rootContainer);
    

    ERROR: QNXPpsSubscriptionServer: QNXPpsSubscriptionServer::createObject: Failed (13) to create dir/pps/services/automation/framework

    ERROR: QNXPpsSubscriptionServer: QNXPpsSubscriptionServer::subscribe: cannot open/pps/services/automation/framework/control? Delta, notify = 449:00000001

    Nevermind, I missed the line:

    Application::setScene (MyPage);

  • HDR Photoshop script

    Hi, I would need your help. I want to customize this code it will automatically run when I launch immediately click OK plus. Thank you very much.

    #target photoshop
    
    /*********************************************************************
     Batch HDR Script by David Milligan
    *********************************************************************/
    
    /*********************************************************************
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
    
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
    
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
    **********************************************************************/
    
    /*
    // BEGIN__HARVEST_EXCEPTION_ZSTRING
    
    <javascriptresource>
    <name>Batch HDR...</name>
    <menu>automate</menu>
    </javascriptresource>
    
    // END__HARVEST_EXCEPTION_ZSTRING
    */
    
    //these lines import the 'Merge To HDR.jsx' script that is built in to photoshop, we will make calls to that script and some of the scripts that it includes
    var runMergeToHDRFromScript = true;
    var g_ScriptFolderPath = app.path + "/"+ localize("$$$/ScriptingSupport/InstalledScripts=Presets/Scripts");
    var g_ScriptPath = File( g_ScriptFolderPath+'/Merge To HDR.jsx' );
    $.evalFile( g_ScriptPath ); 
    //$.level = 2;
    
    //default settings:
    mergeToHDR.useAlignment = true;
    mergeToHDR.useACRToning = false;
    var numberOfBrackets = 3;
    var userCanceled = false;
    var sourceFolder = new Folder('/d/Automata/LOADING');;
    var outputFolder = new Folder('/d/Automata/LOADING');;
    var saveType = "JPEG";
    var jpegQuality = 80;
    var progress;
    var statusText;
    var progressWindow;
    var fileMask = "*";
    var outputFilename = "hdr_output_";
    var zeroPadding = 2;
    
    var hdrRadius = 100;
    var hdrStrength = 0.5;
    var hdrGamma = 1.0;
    var hdrExposure = 0.0;
    var hdrDetail = 100;
    var hdrShadow = 0;
    var hdrHighlights = 0;
    var hdrVibrance = 20;
    var hdrSaturation = 30;
    var hdrSmooth = false;
    var hdrDeghosting = kMergeToHDRDeghostBest;//kMergeToHDRDeghostOff
    var hdrCurve = "0,0,255,255";
    var estTimeRemaining = "";
    
    var previewDoc;
    var originalDoc;
    
    function main()
    {
        promptUser();
        
        //make sure user didn't cancel
        if(sourceFolder != null && outputFolder != null && sourceFolder.exists && outputFolder.exists && numberOfBrackets > 0)
        {
            initializeProgress();
            var files =  sourceFolder.getFiles(fileMask);
            files.sort();
            var currentFileList = new Array();
    
            var numberOfFiles = files.length;
            
            if (numberOfFiles % 3 == 0)
            {
                numberOfBrackets = 3;
            }
            else
            {
                numberOfBrackets = 2;
            }
    
            /* convert numberOfFiles to a string to make sure zeropaddingis high enough to cover all files */
            
            var numberOfFilesStr = "" + (numberOfFiles / numberOfBrackets);
            if (zeroPadding > 0 && zeroPadding < numberOfFilesStr.length)
            {
                zeroPadding = numberOfFilesStr.length;
            }
    
            for(var index = 0;  index < numberOfFiles; index++)
            {
                if((index % numberOfBrackets) == numberOfBrackets - 1)
                {
                    var start = new Date();
                    progress.value = 100 * index / numberOfFiles;
                    currentFileList.push(files[index]);
                    if(userCanceled) break;
                    if(numberOfBrackets > 1)
                    {
                        statusText.text = "Merging files "+(index-numberOfBrackets+2)+" - "+(index+1)+" of "+numberOfFiles + estTimeRemaining;
                        //for braketed exposures use the mergeToHDR script to merge the files into a single 32 bit image
                        mergeToHDR.outputBitDepth= 32;
                        
                        mergeToHDR.mergeFilesToHDR( currentFileList, mergeToHDR.useAlignment, hdrDeghosting );
                        statusText.text = "Toning files "+(index-numberOfBrackets+2)+" - "+(index+1)+" of "+numberOfFiles+ estTimeRemaining;
                    }
                    else
                    {
                        statusText.text = "Loading file "+(index+1)+" of "+numberOfFiles+ estTimeRemaining;
                        //otherwise just open the file
                        doOpenFile(files[index]);
                        statusText.text = "Toning file "+(index+1)+" of "+numberOfFiles+ estTimeRemaining;
                    }
                    progress.value = 100 * (index + numberOfBrackets / 2 ) / numberOfFiles;
                    if(userCanceled) break;
                    try
                    {
                        if(app.activeDocument != null && outputBitDepth < 32)
                        {
                            //apply the actual tone mapping to the HDR image to get it back down to 8 bits
                            doHDRToning();
                        }
                    }
                    catch(error)
                    {
                        alert(error + "\nCheck number of files in source folder");
                        break;
                    }
                    
                    //save the result and close
                    //TODO: add leading zeros to index in filename
                    
                    if(numberOfBrackets > 1)
                    {
                        statusText.text = "Saving result "+(index-numberOfBrackets+2)+" - "+(index+1)+" of "+numberOfFiles+ estTimeRemaining;
                    }
                    else
                    {
                        statusText.text = "Saving result "+(index+1)+" of "+numberOfFiles+ estTimeRemaining;
                    }
                    if(userCanceled) break;
                    doSaveFile(outputFolder.absoluteURI + "/" + outputFilename + ZeroPad(Math.round((index + 1)/numberOfBrackets), zeroPadding) );
                    activeDocument.close(SaveOptions.DONOTSAVECHANGES);
                    
                    //reset our file list
                    currentFileList = new Array();
                    
                    //calculate time remaining
                    var end = new Date();
                    var timeElapsed = end.getTime() - start.getTime();
                    var mins = timeElapsed / 60000 * ((numberOfFiles - index - 1) / numberOfBrackets);
                    estTimeRemaining = " | Remaining: " + ZeroPad((mins / 60).toFixed(0),2) + ":" + ZeroPad((mins % 60).toFixed(0),2);
                }
                else
                {
                    currentFileList.push(files[index]);
                }
            }
            progressWindow.hide();
        }
    }
    
    function doOpenFile(filename)
    {
        
        const eventOpen = app.charIDToTypeID('Opn ');
        var desc = new ActionDescriptor();
        desc.putPath( typeNULL, new File( filename ) );
        desc.putBoolean( kpreferXMPFromACRStr, true ); //not sure what this does or if it is needed
        executeAction( eventOpen, desc, DialogModes.NO );
        //if we don't convert the image to 32bit the mergeToHDR script will not tone our image when we call it, it will simply downconvert it to 8 bit
        convertTo32Bit ();
    }
    
    function convertTo32Bit()
    {
        var idCnvM = charIDToTypeID( "CnvM" );
        var desc6 = new ActionDescriptor();
        var idDpth = charIDToTypeID( "Dpth" );
        desc6.putInteger( idDpth, 32 );
        var idMrge = charIDToTypeID( "Mrge" );
        desc6.putBoolean( idMrge, false );
        var idRstr = charIDToTypeID( "Rstr" );
        desc6.putBoolean( idRstr, false );
        executeAction( idCnvM, desc6, DialogModes.NO );
    }
    
    function doSaveFile(filename)
    {
        if(saveType == "JPEG")
        {
            var jpgSaveOptions = new JPEGSaveOptions();
            jpgSaveOptions.embedColorProfile = true;
            jpgSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
            jpgSaveOptions.matte = MatteType.NONE;
            jpgSaveOptions.quality = jpegQuality;
            activeDocument.saveAs(new File(filename), jpgSaveOptions, true /*Save As Copy*/, Extension.LOWERCASE /*Append Extention*/);
        }
        else if(saveType == "TIFF")
        {
            var tifSaveOptions = new TiffSaveOptions();
            tifSaveOptions.embedColorProfile = true;
            activeDocument.saveAs(new File(filename), tifSaveOptions, true /*Save As Copy*/, Extension.LOWERCASE /*Append Extention*/);
        }
        else if(saveType == "TIFF LZW")
        {
            var tifSaveOptions = new TiffSaveOptions();
            tifSaveOptions.embedColorProfile = true;
            tifSaveOptions.imageCompression = TIFFEncoding.TIFFLZW;
            activeDocument.saveAs(new File(filename), tifSaveOptions, true /*Save As Copy*/, Extension.LOWERCASE /*Append Extention*/);
        }
        else if(saveType == "TIFF ZIP")
        {
            var tifSaveOptions = new TiffSaveOptions();
            tifSaveOptions.embedColorProfile = true;
            tifSaveOptions.imageCompression = TIFFEncoding.TIFFZIP;
            activeDocument.saveAs(new File(filename), tifSaveOptions, true /*Save As Copy*/, Extension.LOWERCASE /*Append Extention*/);
        }
        else
        {
            activeDocument.saveAs(new File(filename), undefined, true /*Save As Copy*/, Extension.LOWERCASE /*Append Extention*/);
        }
    }
    
    function doHDRToning()
    {
        //create the ActionDescriptor that describes the HDR toning settings to use
        var hdDesc = new ActionDescriptor;
        hdDesc.putInteger( stringIDToTypeID( 'version' ), 6 );//I'm not sure what this does
        hdDesc.putInteger(  kmethodStr, 3 );// the toning method to use, 3 = local adaptation
        hdDesc.putDouble( stringIDToTypeID( 'radius' ), hdrRadius );
        hdDesc.putDouble( stringIDToTypeID( 'threshold' ), hdrStrength );// strength
        hdDesc.putDouble( stringIDToTypeID( 'center' ), hdrGamma );// gamma
        hdDesc.putDouble( stringIDToTypeID( 'brightness' ), hdrExposure );// exposure
        hdDesc.putDouble( stringIDToTypeID( 'detail' ), hdrDetail );
        hdDesc.putDouble( stringIDToTypeID( 'shallow' ), hdrShadow );
        hdDesc.putDouble( stringIDToTypeID( 'highlights' ), hdrHighlights );
        hdDesc.putDouble( stringIDToTypeID( 'vibrance' ), hdrVibrance );
        hdDesc.putDouble( stringIDToTypeID( 'saturation' ), hdrSaturation);
        hdDesc.putBoolean( stringIDToTypeID( 'smooth' ), hdrSmooth );
        hdDesc.putBoolean( stringIDToTypeID( 'deghosting' ), hdrDeghosting );
        
        //create the tone curve
        var cDesc = new ActionDescriptor;
        cDesc.putString( stringIDToTypeID( 'name' ), 'Default');
        var cList = new ActionList;
        var points = hdrCurve.split(',');
        for(var i = 0; i < points.length; i++)
        {
            if(i % 2 == 1)
            {
                var pDesc = new ActionDescriptor;
                pDesc.putDouble( stringIDToTypeID( 'horizontal' ), points[i-1] );
                pDesc.putDouble( stringIDToTypeID( 'vertical' ), points[i] );
                pDesc.putBoolean( keyContinuity , false );// ?????
                cList.putObject( charIDToTypeID( 'Pnt ' ), pDesc );
            }
        }
        cDesc.putList( stringIDToTypeID( 'curve' ), cList );
        hdDesc.putObject( kclassContour, classShapingCurve, cDesc );
        
        //call the script that actually invokes the toning plugin
        convertFromHDRNoDialog( outputBitDepth, hdDesc );
    }
    
    function initializeProgress()
    {
        progressWindow = new Window("palette { text:'Meilleure Visite Chargement', \
            statusText: StaticText { text: 'Processing Images...', preferredSize: [350,20] }, \
            progressGroup: Group { \
                progress: Progressbar { minvalue: 0, maxvalue: 100, value: 0, preferredSize: [300,20] }, \
                cancelButton: Button { text: 'Cancel' } \
            } \
        }");
        statusText = progressWindow.statusText;
        progress = progressWindow.progressGroup.progress;
        progressWindow.progressGroup.cancelButton.onClick = function() { userCanceled = true; }
        progressWindow.show();
    }
    
    function promptUser()
    {
        var setupWindow = new Window("dialog { orientation: 'row', text: 'Meilleure Visite', alignChildren:'top', \
            leftGroup: Group { orientation: 'column', alignChildren:'fill', \
                inputPanel: Panel { text: 'Input', \
                    sourceGroup: Group { \
                    }, \
                    bracketGroup: Group{ \
                        bracketLabel: StaticText { text: 'Number of Brackets: ' }, \
                        bracketBox: EditText { characters: 2 }, \
                        filterLabel: StaticText { text: 'File Filter: ' }, \
                        filterText: EditText { characters: 5 }, \
                        alignCheckBox: Checkbox { text: 'Align' }\
                        deghostLabel: StaticText { text: 'Deghost: ' }\
                        deghostDropDown: DropDownList { }, \
                    } \
                }, \
                toningPanel: Panel { text: 'Toning', orientation:'row', alignChildren:'top' } ,\
                outputPanel: Panel { text: 'Output', \
                    outputGroup: Group { \
                        outputBox: EditText { characters: 10, text: '', enabled:false }, \
                    }, \
                    outputOptionsGroup: Group { \
                        outputFilenameLabel: StaticText { text: 'Filename Format: ' }, \
                        outputFilenameText: EditText { characters: 10 }, \
                    }, \
                    saveSettingsGroup: Group { \
                        saveTypeLabel: StaticText { text: 'Save As: ' }, \
                        saveDropDown: DropDownList { }, \
                        jpegQualityLabel: StaticText { text: 'JPEG Quality (1-10): ' }, \
                        jpegQualityText: EditText { characters: 2}, \
                        outputBitDepthLabel: StaticText { text: 'Bit Depth', enabled:false }, \
                        outputBitDepthDropDown: DropDownList { enabled:false }, \
                    } \
                } \
            }, \
            rightGroup: Group { orientation: 'column', alignChildren:'fill', \
                okButton: Button { text: 'OK', enabled: true } \
                cancelButton: Button { text: 'Cancel' } \
            } \
        } ");
        
        generateToningPanel(setupWindow.leftGroup.toningPanel);
        
        //shortcut variables
        var sourceBox = setupWindow.leftGroup.inputPanel.sourceGroup.sourceBox;
        var sourceBrowse = setupWindow.leftGroup.inputPanel.sourceGroup.sourceBrowse;
        var bracketBox = setupWindow.leftGroup.inputPanel.bracketGroup.bracketBox;
        var filterText = setupWindow.leftGroup.inputPanel.bracketGroup.filterText;
        var alignCheckBox = setupWindow.leftGroup.inputPanel.bracketGroup.alignCheckBox;
        var outputBox = setupWindow.leftGroup.outputPanel.outputGroup.outputBox;
        var outputFilenameText = setupWindow.leftGroup.outputPanel.outputOptionsGroup.outputFilenameText;
        var outputFilenamePost = setupWindow.leftGroup.outputPanel.outputOptionsGroup.outputFilenamePost;
        var saveDropDown = setupWindow.leftGroup.outputPanel.saveSettingsGroup.saveDropDown;
        var jpegQualityText = setupWindow.leftGroup.outputPanel.saveSettingsGroup.jpegQualityText;
        var jpegQualityLabel = setupWindow.leftGroup.outputPanel.saveSettingsGroup.jpegQualityLabel;
        var outputBitDepthDropDown = setupWindow.leftGroup.outputPanel.saveSettingsGroup.outputBitDepthDropDown;
        var outputBitDepthLabel = setupWindow.leftGroup.outputPanel.saveSettingsGroup.outputBitDepthLabel;
        var okButton = setupWindow.rightGroup.okButton;
        var cancelButton = setupWindow.rightGroup.cancelButton;
        var toningPanel = setupWindow.leftGroup.toningPanel;
        var deghostDropDown = setupWindow.leftGroup.inputPanel.bracketGroup.deghostDropDown;
        
        //set default values
        bracketBox.text = numberOfBrackets;
        filterText.text = fileMask;
        //mergeToHDR.useAlignment = true;
        alignCheckBox.value = mergeToHDR.useAlignment;
        outputFilenameText.text = outputFilename;
        jpegQualityText.text = jpegQuality;
        saveDropDown.add("item", "TIFF");
        saveDropDown.add("item", "JPEG");
        saveDropDown.add("item", "TIFF LZW");
        saveDropDown.add("item", "TIFF ZIP");
        saveDropDown.selection = 0;
        outputBitDepthDropDown.add("item", "8");
        outputBitDepthDropDown.add("item", "16");
        outputBitDepthDropDown.add("item", "32");
        outputBitDepthDropDown.selection = 0;
        
        var generateDeghostDropDownList = function(count)
        {
            deghostDropDown.removeAll()
            deghostDropDown.add("item", "Best");
            deghostDropDown.add("item", "Off");
            for(var i = 0; i < count; i++)
            {
                deghostDropDown.add("item", i);
            }
            deghostDropDown.selection = 0;
        }
        generateDeghostDropDownList(numberOfBrackets);
        
        //event handlers
        bracketBox.onChange = function()
        { 
            numberOfBrackets = bracketBox.text;
            generateDeghostDropDownList(numberOfBrackets);
        };
        filterText.onChange = function() { fileMask = filterText.text; };
        alignCheckBox.onClick = function() { mergeToHDR.useAlignment = alignCheckBox.value; };
        deghostDropDown.onChange = function() 
        { 
            if(this.selection.text == "Best") 
                hdrDeghosting = kMergeToHDRDeghostBest;
            else if(this.selection.text == "Off")
                hdrDeghosting = kMergeToHDRDeghostOff;
            else
                hdrDeghosting = Number(this.selection.text);
                
        };
        outputBox.onChange = function()
        {
            outputFolder = new Folder(outputBox.text);
            okButton.enabled = sourceFolder != null && outputFolder != null && sourceFolder.exists && outputFolder.exists;
        };
        outputFilenameText.onChange = function() { outputFilename = outputFilenameText.text; };
    
        saveDropDown.onChange = function()
        {
            saveType = saveDropDown.selection.text;
            jpegQualityText.enabled = saveDropDown.selection.text == "JPEG";
            jpegQualityLabel.enabled = saveDropDown.selection.text == "JPEG";
            if(saveDropDown.selection.text == "JPEG")
            {
                outputBitDepthDropDown.selection = 0;
            }
            outputBitDepthDropDown.enabled = saveDropDown.selection.text != "JPEG" && saveDropDown.selection.text != "Radiance" && saveDropDown.selection.text != "OpenEXR";
            outputBitDepthLabel.enabled = outputBitDepthDropDown.enabled;
            
        };
        jpegQualityText.onChange = function() { jpegQuality = jpegQualityText.text; };
        outputBitDepthDropDown.onChange = function()
        { 
            outputBitDepth = outputBitDepthDropDown.selection.text; 
            toningPanel.enabled = outputBitDepth != 32;
        }
        okButton.onClick = function() { setupWindow.hide(); cleanUpPreviews(); };
        cancelButton.onClick = function() { sourceFolder = null, setupWindow.hide(); cleanUpPreviews(); };
        
        saveDropDown.onChange();
        outputBitDepthDropDown.onChange();
        
        setupWindow.show();
    }
    
    function cleanUpPreviews()
    {
        if(originalDoc != null)
        {
            originalDoc.close(SaveOptions.DONOTSAVECHANGES);
            originalDoc = null;
        }
        if(previewDoc != null)
        {
            previewDoc.close(SaveOptions.DONOTSAVECHANGES);
            previewDoc = null;
        }
    }
    
    function generateToningPanel(toningPanel)
    {
        var leftToningGroup = toningPanel.add("group{orientation:'column',alignChildren:'fill'}");
        var rightToningGroup = toningPanel.add("group{orientation:'column',alignChildren:'fill'}");
        var presetGroup = leftToningGroup.add("group{orientation:'row'}");
        var presetDropDown = presetGroup.add("dropdownlist");
        var loadPresetButton = presetGroup.add("button", undefined, "Load Preset");
        var edgePanel = leftToningGroup.add("panel",undefined,"Edge Glow");
        var radiusSlider = createSliderControl(edgePanel.add("group"), "  Radius: ", "px", 0, 500, 0, hdrRadius, function(newValue){ hdrRadius = newValue; });
        var strengthSlider = createSliderControl(edgePanel.add("group"), "Strength: ", "", 0, 4.0, 2, hdrStrength, function(newValue){ hdrStrength = newValue; });
        var edgeGroup = edgePanel.add("group");
        var smoothEdgesBox = edgeGroup.add("checkbox",undefined, "Smooth Edges");
        var detailPanel = leftToningGroup.add("panel",undefined,"Tone and Detail");
        var gammaSlider = createSliderControl(detailPanel.add("group"), "  Gamma: ", "", 0.1, 2.0, 2, hdrGamma, function(newValue){ hdrGamma = newValue; });
        var exposureSlider = createSliderControl(detailPanel.add("group"), "Exposure: ", "", -5.0, 5.0, 2, hdrExposure, function(newValue){ hdrExposure = newValue; });
        var detailSlider = createSliderControl(detailPanel.add("group"), "     Detail: ", "%", -300, 300, 0, hdrDetail, function(newValue){ hdrDetail = newValue; });
        var advancedPanel = leftToningGroup.add("panel",undefined,"Advanced");
        var shadowSlider = createSliderControl(advancedPanel.add("group"), "  Shadow: ", "%", -100, 100, 0, hdrShadow, function(newValue){ hdrShadow = newValue; });
        var highlightSlider = createSliderControl(advancedPanel.add("group"), " Highlight: ", "%",  -100, 100, 0, hdrHighlights, function(newValue){ hdrHighlights = newValue; });
        var vibranceSlider = createSliderControl(advancedPanel.add("group"), "  Vibrance: ", "%",  -100, 100, 0, hdrVibrance, function(newValue){ hdrVibrance = newValue; });
        var saturationSlider = createSliderControl(advancedPanel.add("group"), "Saturation: ", "%",  -100, 100, 0, hdrSaturation, function(newValue){ hdrSaturation = newValue; });
        var toningCurvePanel = leftToningGroup.add("panel{text:'Toning Curve',alignChildren:'fill'}");
        var curveBox = toningCurvePanel.add("edittext", undefined, hdrCurve);
        
        //default values
        smoothEdgesBox.value = hdrSmooth;
        var presetFiles = getPresetFiles();
        var updateSliders = function()
        {
            radiusSlider(hdrRadius);
            strengthSlider(hdrStrength);
            smoothEdgesBox.value = hdrSmooth;
            exposureSlider(hdrExposure);
            gammaSlider(hdrGamma);
            detailSlider(hdrDetail);
            shadowSlider(hdrShadow);
            highlightSlider(hdrHighlights);
            vibranceSlider(hdrVibrance);
            saturationSlider(hdrSaturation);
            curveBox.text = hdrCurve;
        }
        if(presetFiles.length > 0)
        {
            for(var f in presetFiles)
            {
                presetDropDown.add("item", presetFiles[f].displayName.replace(".hdt",""));
            }
            presetDropDown.selection = 0;
            loadPreset(presetFiles[0]);
            presetDropDown.onChange = function()
            {
                loadPreset(presetFiles[presetDropDown.selection.index]);
                updateSliders();
            };
        }
        
        //event handlers
        loadPresetButton.onClick = function()
        {
            loadPreset(null);
            updateSliders();
        };
        smoothEdgesBox.onClick = function () { hdrSmooth = smoothEdgesBox.value; };
        curveBox.onChange = function () { hdrCurve = curveBox.text; };
        
        updateSliders();
    }
    
    
    function createSliderControl(group,label,postLabel,min,max,round,value,onValueChanged)
    {
        var ignoreChange = false;
        group.add("statictext", undefined, label);
        var slider = group.add("slider",undefined,value,min,max);
        slider.alignment = "fill";
        var box = group.add("edittext",undefined,value);
        box.characters = 6;
        group.add("statictext", undefined, postLabel);
        slider.onChange = function()
        {
            if(!ignoreChange)
            {
                ignoreChange = true;
                box.text = slider.value.toFixed(round);
                onValueChanged(slider.value);
                ignoreChange = false;
            }
        };
        box.onChange = function()
        {
            if(!ignoreChange)
            {
                ignoreChange = true;
                slider.value = box.text;
                onValueChanged(box.text);
                ignoreChange = false;
            }
        };
        return function(newValue)
        {
            slider.value = newValue;
            box.text = newValue.toFixed(round);
        };
    }
    
    //forces a redraw while a script dialog is active (for preview)
    var waitForRedraw = function()
    {
        var desc = new ActionDescriptor();
        desc.putEnumerated(charIDToTypeID("Stte"), charIDToTypeID("Stte"), charIDToTypeID("RdCm"));
        executeAction(charIDToTypeID("Wait"), desc, DialogModes.NO);
    }
    
    function getZoomLevel()
    {
        var ref = new ActionReference();
        ref.putEnumerated( charIDToTypeID("Dcmn"), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );
        var desc = executeActionGet(ref);
        return Number(desc.getDouble(stringIDToTypeID('zoom'))*100).toFixed(1);
    }
    
    function setZoomLevel( zoom )
    {
        if(zoom < 1 ) zoom =1;
        var ref = new ActionReference();
        ref.putEnumerated( charIDToTypeID("capp"), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );
        var getScrRes = executeActionGet(ref).getObjectValue(stringIDToTypeID('unitsPrefs')).getUnitDoubleValue(stringIDToTypeID('newDocPresetScreenResolution'))/72;
        var docRes = activeDocument.resolution;
        activeDocument.resizeImage( undefined, undefined, getScrRes/(zoom/100), ResampleMethod.NONE );
        var desc = new ActionDescriptor();
        ref = null;
        ref = new ActionReference();
        ref.putEnumerated( charIDToTypeID( "Mn  " ), charIDToTypeID( "MnIt" ), charIDToTypeID( 'PrnS' ) );
        desc.putReference( charIDToTypeID( "null" ), ref );
        executeAction( charIDToTypeID( "slct" ), desc, DialogModes.NO );
        activeDocument.resizeImage( undefined, undefined, docRes, ResampleMethod.NONE );
    }
    
    function ZeroPad(number,numZeros)
    {
        var result = number.toString();
        while(result.length < numZeros)
        {
            result = "0" + result;
        }
        return result;
    }
    
    var getPresetFiles = function()
    {
        var presetFolder = new Folder(app.path + "/Presets/HDR Toning");
        return presetFolder.getFiles("*.hdt");
    }
    
    var loadPreset = function(presetFile)
    {
        if(presetFile == null)
        {
            presetFile = File.openDialog("Select Preset","*.hdt");
        }
        if(presetFile != null)
        {
            var tmpStr = new String();
            var binaryData = new Array();
            presetFile.encoding = "BINARY";
            presetFile.open('r');
            while(!presetFile.eof)
            {
                var ch = presetFile.readch();
                if ( ch.charCodeAt(0) == 0 ){
                    tmpStr += ' ';
                }
                else {
                    tmpStr += ch;
                }
                binaryData.push(ch.charCodeAt(0));
            }
            presetFile.close();
            if(binaryData.length >= 40)
            {
                // init start position for reading datas
                // start position for english version ( string "D e f a u l t" is in the preset file )
                var startPos = 38;
                if ( tmpStr.search ("P a r   d é f a u t") > -1 ){
                    // start position for french preset file version ( string "P a r   d é f a u t" is in the preset file ) (==> + 6 bytes)
                    startPos = 44;
                }
                // if your preset file can't be read, try this : open it in notepad to see the string "D e f a u l t" in your language and add the code here to set startPos to 38 + diff between the length of ("D e f a u l t") and length of ("D e f a u l t" in your language)
                var curvePointCount = getUInt16(binaryData, startPos);
                if(binaryData.length >= 104 + curvePointCount * 4)
                {
                    var curvePointStr = "";
                    for(var i = 0; i < curvePointCount; i++)
                    {
                        curvePointStr += getUInt16(binaryData, startPos + 4 + i * 4) + "," + getUInt16(binaryData, startPos + 2 + i * 4) + ((i < curvePointCount - 1) ? "," : "");
                    }
                    hdrCurve = curvePointStr;
                    
                    hdrStrength =  getFloat32(binaryData,8);
                    hdrRadius = getFloat32(binaryData, startPos + 10 + 5 * curvePointCount);
                    hdrExposure = getFloat32(binaryData, startPos + 34 + 5 * curvePointCount);
                    hdrSaturation = getFloat32(binaryData, startPos + 38 + 5 * curvePointCount);
                    hdrDetail = getFloat32(binaryData, startPos + 42 + 5 * curvePointCount);
                    hdrShadow = getFloat32(binaryData, startPos + 46 + 5 * curvePointCount);
                    hdrHighlights = getFloat32(binaryData, startPos + 50 + 5 * curvePointCount);
                    hdrGamma = getFloat32(binaryData, startPos + 54 + 5 * curvePointCount);
                    hdrVibrance = getFloat32(binaryData, startPos + 58 + 5 * curvePointCount);
                    hdrSmooth = getUInt16(binaryData, startPos + 62 + 5 * curvePointCount) != 0;
                }
                else
                {
                    alert("Error Loading File", "Error", true);
                }
            }
            else
            {
                alert("Error Loading File", "Error", true);
            }
        }
    }
    
    function getUInt16(byteArray,offset)
    {
        return byteArray[offset] * 0x100 + byteArray[offset + 1];
    }
    
    function getUInt32(byteArray,offset)
    {
        return byteArray[offset] * 0x1000000 + byteArray[offset + 1] * 0x10000 + byteArray[offset + 2] * 0x100 + byteArray[offset + 3];
    }
    
    function getFloat32(byteArray,offset)
    {
        var bytes = getUInt32(byteArray,offset);
        var sign = (bytes & 0x80000000) ? -1 : 1;
        var exponent = ((bytes >> 23) & 0xFF) - 127;
        var significand = (bytes & ~(-1 << 23));
        
        if (exponent == 128)
            return sign * ((significand) ? Number.NaN : Number.POSITIVE_INFINITY);
        
        if (exponent == -127) {
            if (significand == 0) return sign * 0.0;
            exponent = -126;
            significand /= (1 << 22);
        } else significand = (significand | (1 << 23)) / (1 << 23);
        
        return sign * significand * Math.pow(2, exponent);
    }
    
    main();
    
    

    I do not support exhibitions in order to perform processing HDR.   I don't want to create HDR images. The EXIF data does not have an EV adjustment. You can calculate EV information EXIF information.  Should the process of HDR data EXIF to calculate EV your image file need to have then the metadata.  Your script can be able to be something for the HDR script, I have no idea what the deghostFlag is all. Maybe if you examine the code in the script of David Milligan you can very well how to use the HDR script from another script.

  • Captivate 9 alignment Quiz questions

    Hi all

    I'm having a little trouble and am unable to find a solution anywhere on the web (so far).

    Let me explain the situation:

    I created a master apron for my business and put everything in plans, good color, and all in the master apron looks perfect.

    However when I add questions to multiple choice or true/false quiz slides to a new project the alignment of the response overlap and may not be suitable.

    After that, I noticed, I went back to the master slides and tried to change alignment here before trying to add slides to a new project.

    Once again the A / B answers where superimposed and I was unable to move either to another location.

    Try to recover the box response and displacement it causes all forms and all other objects on the slide to warp out of shape, while the answer superimposed boxes remain the same.

    Master slides that are do are: multiple CHOICE, T/F, FIB, sequence and multiple CHOICE, T/F, FIB, sequence2

    My version number is: 9.0.1.320

    Thanks in advance for any help.

    Sincerely,

    Sean

    I solved the problem I had with the alignment of the quiz answers.

    It was with the corner radius cut response fields "cemented" in a certain placement of page layout.

    By decreasing the RADIUS response has become incorporated into the form again after box placement which in the live slides I could handle once more the placement of the response boxes.

    So if the alignment of the fixed elements is off and cannot be moved over, check the corner radius to make sure that the object that is aligned incorrectly is embedded in the form once more allowing it to be manipulated to your favorite place!

  • Improve the performance of processing image javaFx

    Hello

    I'm working on Image processing with javaFx. I think my code isn't effective favorite (with pictures HD, refresh is very slow). Because I am doing a 'for' on each pixel of my image every time I have to refresh it. But I don't know how else to do.

    So I need help to improve the performance of my treatment.

    This is my code:

    import javafx.application.Application;
    import jvafx.beans.InvalidationListener;
    import javafx.beans.Observable;
    import javafx.beans.property.DoubleProperty;
    import javafx.scene.Scene;
    import javafx.scene.control.ScrollPane;
    import javafx.scene.control.Slider;
    import javafx.scene.image.Image;
    import javafx.scene.image.ImageView;
    import javafx.scene.image.PixelReader;
    import javafx.scene.image.PixelWriter;
    import javafx.scene.image.WritableImage;
    import javafx.scene.layout.AnchorPane;
    import javafx.scene.paint.Color;
    import javafx.stage.Stage;
        
    public class Example extends Application {
    
        private Image src;
        private WritableImage dest;
        private int width;
        private int height;
         int value = 0;
    
        @Override
        public void start(Stage stage) {
            AnchorPane root = new AnchorPane();
            initImage(root);
            Scene scene = new Scene(root);
            stage.setTitle("Demo processing");
            stage.setResizable(false);
            stage.setScene(scene);
            stage.show();
        }
    
        private void initImage(AnchorPane root) {
            src = new Image(
                    "http://mikecann.co.uk/wp-content/uploads/2009/12/ScreenHunter_02-Dec.-10-19.41-1024x484.jpg");
            width = (int) src.getWidth();
            height = (int) src.getHeight();
            root.setPrefSize(800, 800 + 50);
            ScrollPane scrollPane = new ScrollPane();
            scrollPane.setPrefHeight(600);
            scrollPane.setPrefWidth(1000);
            dest = new WritableImage(width, height);
            ImageView destView = new ImageView(dest);
    
            scrollPane.setContent(destView);
    
            root.getChildren().add(scrollPane);
            AnchorPane.setTopAnchor(scrollPane, 0.0);
    
            Slider slider = new Slider(0, 255, 1);
            slider.setPrefSize(800, 50);
            slider.setShowTickLabels(true);
            slider.setShowTickMarks(true);
            slider.setSnapToTicks(true);
            slider.setMajorTickUnit(1.0);
            slider.setMinorTickCount(0);
            slider.setLayoutY(700);
            slider.valueProperty().addListener(new InvalidationListener() {
                @Override
                public void invalidated(Observable o) {
                    value = (int) ((DoubleProperty) o).get();
                    color();
                }
            });
            root.getChildren().add(slider);
            color();
        }
    
        private void color() {
            PixelReader reader = src.getPixelReader();
            PixelWriter writer = dest.getPixelWriter();
            for (int x = 0; x < width; x++) {
                for (int y = 0; y < height; y++) {
                    Color color = reader.getColor(x, y);
                    double red = (double) value * x * y / (width * height) / 255;
                    double green = color.getGreen();
                    double blue = (double) value * ((width * height) - x * y)
                            / (width * height) / 255;
                        writer.setColor(x, y, Color.color(red, green, blue));
                    }
                }
            }
    
            public static void main(String[] args) {
                launch(args);
            }
        }
    

    And that's with full HD picture:

                src = new Image(
                    "http://www.freedomwallpaper.com//nature-wallpaper-hd/hd_sunshine_hd.jpg");
    

    As you change each pixel independently, there really is no other way than to use a loop through the pixels. Working directly with the pixel data, rather than use setColor and getColor (...) (...) seems to give some performance enhancements. And there are some general performance enhancements, you can use (reorder the loops, calculate the value used repeatedly, etc.). The performance of this version seems acceptable on my system:

    import javafx.application.Application;
    import javafx.beans.InvalidationListener;
    import javafx.beans.Observable;
    import javafx.beans.property.DoubleProperty;
    import javafx.scene.Scene;
    import javafx.scene.control.ScrollPane;
    import javafx.scene.control.Slider;
    import javafx.scene.image.Image;
    import javafx.scene.image.ImageView;
    import javafx.scene.image.PixelFormat;
    import javafx.scene.image.PixelWriter;
    import javafx.scene.image.WritableImage;
    import javafx.scene.layout.AnchorPane;
    import javafx.stage.Stage; 
    
    public class ImageProcessingExample extends Application { 
    
        @Override
        public void start(Stage stage) {
            AnchorPane root = new AnchorPane();
            initImage(root);
            Scene scene = new Scene(root);
            stage.setTitle("Demo processing");
            stage.setResizable(false);
            stage.setScene(scene);
            stage.show();
        }
        private void initImage(AnchorPane root) {
    //        Image src = new Image(
    //                "http://mikecann.co.uk/wp-content/uploads/2009/12/ScreenHunter_02-Dec.-10-19.41-1024x484.jpg");
            Image src = new Image(
                    "http://www.freedomwallpaper.com//nature-wallpaper-hd/hd_sunshine_hd.jpg");
            int width = (int) src.getWidth();
            int height = (int) src.getHeight(); 
    
            int[] srcPixels = new int[width*height];
    
            src.getPixelReader().getPixels(0, 0, width, height, PixelFormat.getIntArgbPreInstance(), srcPixels, 0, width);
    
            root.setPrefSize(800, 800 + 50);
            ScrollPane scrollPane = new ScrollPane();
            scrollPane.setPrefHeight(600);
            scrollPane.setPrefWidth(1000);
            WritableImage dest = new WritableImage(width, height);
            PixelWriter pixWriter = dest.getPixelWriter();
    
            ImageView destView = new ImageView(dest);
            scrollPane.setContent(destView);
            root.getChildren().add(scrollPane);
            AnchorPane.setTopAnchor(scrollPane, 0.0);
            Slider slider = new Slider(0, 255, 1);
            slider.setPrefSize(800, 50);
            slider.setShowTickLabels(true);
            slider.setShowTickMarks(true);
            slider.setSnapToTicks(true);
            slider.setMajorTickUnit(1.0);
            slider.setMinorTickCount(0);
            slider.setLayoutY(700);
            slider.valueProperty().addListener(new InvalidationListener() {
                @Override
                public void invalidated(Observable o) {
                    int value = (int) ((DoubleProperty) o).get();
                    color(srcPixels, pixWriter, value, width ,height);
                }
            });
            root.getChildren().add(slider);
            color(srcPixels, pixWriter, 0, width, height);
        }
        private void color(int[] srcPixels, PixelWriter pixWriter, int value, int width, int height) {
            final int area = width * height ;
            final int[] writerPixels = new int[area];
    
            final int a = 0xff00_0000;
            final int greenMask = 0xff00;
    
            for (int y = 0; y < height; y++) {
                final int depthOffset = y * width ;
                for (int x = 0; x < width; x++) {
                    final int xy = x * y;
    final int index = x + depthOffset ;
                    final int red = value * xy  / area ;
                    final int green = srcPixels[index] & greenMask ;
                    final int blue = value * (area - xy)  / area ;
                    writerPixels[index] = a | red << 16 | green | blue ;
                }
            }
            pixWriter.setPixels(0, 0, width, height, PixelFormat.getIntArgbInstance(), writerPixels, 0, width);
        }
            public static void main(String[] args) {
                launch(args);
            }
        } 
    

Maybe you are looking for

  • The CPU temprature is high

    Hello I need a software tool to monitor my CPU temprature.My laptop chrashes if I start the applications and I think that the CPU temprature is high. Tanks for help,by F_E_O_S

  • Could not load library nationalinstruments.ui

    Received this error message: could not load file or assembly 'NationalInstruments.UI, Version = 8.6.35.465, Culture = neutral, PublicKeyToken = 18cbae0f9955702a' or one of its dependencies. The system cannot find the specified file. This app works fi

  • HP Deskjet Ink Advantage 4615: Printer is deleted when delete print queue of the printer in Win8.1

    I right click the "Delete the print queue" option in "devices and printers". Who deleted the default printer and also removed the icon of the printer. The system then made the fax printer HP 4610 series the default printer. I re - install from the we

  • 9401

    Hello: I have a cDaq 9184 and a module or 9401: I'm trying to measure two frequency inputs to the nor 9401, with values between 100 to 2 Mhz and software configuration for each is 'wide range counter' and 'frequency' selected for them on counter vi e

  • 8600 All In One OfficeJet

    6 weeks after the repair of a HP technician due to the printer failure, they sent a replacement printer and I sent mine back as he has requested.  However, due to no power on the old printer, I was not able to remove the printer head and cartridges.