Analyze monochrome image using histogram(count white pixels)

Hi ,
Am still a begginner in Java and i have a project to analze image using histogram and display the result...i've been working on different things till i reached to this code(below) which is missing the count function(my target), this code takes a .bmp image and display the histogram..but there is a problem in the result coz i don't know how to put the count function in it ...the count function counts the white pixels only through its pixels' scan and the count result is displayed on the histogram .....
kind of:
for(h=0,h<image size,h++)
if{
pixel is white then Count ++ and put number on histogram else get out of the loop ...........
So Plz Any HELP!!!!!!!
this is my code for editting:
package display;
import java.awt.BorderLayout;
import java.awt.image.renderable.ParameterBlock;
import javax.media.jai.Histogram;
import javax.media.jai.JAI;
import javax.media.jai.PlanarImage;
import javax.swing.JFrame;
public class DisplayHistogramApp extends JFrame
private DisplayHistogram dh;
public DisplayHistogramApp(String name,Histogram histo)
setTitle("Histogram of "+name);
getContentPane().setLayout(new BorderLayout());
dh = new DisplayHistogram(histo,"Histogram of "+name);
getContentPane().add(dh,BorderLayout.CENTER);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
public static void main(String[] args)
PlanarImage image = JAI.create("fileload", args[0]);
ParameterBlock pb = new ParameterBlock();
pb.addSource(image);
pb.add(null);
pb.add(1);
pb.add(1);
pb.add(new int[]{256});
pb.add(new double[]{0});
pb.add(new double[]{256});
PlanarImage temp = JAI.create("histogram", pb);
Histogram h = (Histogram)temp.getProperty("histogram");
new DisplayHistogramApp(args[0],h);
Regards to All..

HI.....I mentioned in my first post that I am a beginner in JAVA..Inaddition,this is my first project...and am still a student too !!!
Also I wonna thank Maxideon for the help:)..I followed the steps you gave to me and i read a little about swing and took the paintComponent(...) from DisplayHistogram..probably i did same thing used(Display Histogram and DisplayHistogramApp)..And i put the hist[x] in the main...called it from ColumnHistogram as
public ColumnHistogram(int[] hist) {
             this.hist = hist;
       }Upon buildMainProject no errors occured..however when Run...a Disaster showup:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at mine.ColumnHistogram.paintComponent(ColumnHistogram.java:107)
at javax.swing.JComponent.paint(JComponent.java:1027)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:564)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5129)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:277)
at javax.swing.RepaintManager.paint(RepaintManager.java:1217)
at javax.swing.JComponent.paint(JComponent.java:1013)
at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:21)
at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)
at java.awt.Container.paint(Container.java:1762)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714)
at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:694)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
What might me My Mistakes!!!???
Regards

Similar Messages

  • White pixel appearing in screen in upper left corner when using fullscreen

    hi,
    Whenever I use fullscreen a white pixel will appear in the upper left corner of the screen.
    The pixel is also appearing in a screenshot, so it must be software.
    Last week I did a clean install on my mac, and only put my files back (not the preferences). But I have the same problem again.
    When I delete the loginwindow.plist and log off and in again, the problem is gone. But will reappear when my mac will go to sleep and wake again (or restart).
    Can anybody help me fix the problem?
    Thanks!

    I suddenly had the same problem (little white pixel in very top left of screen)
    Resetting the PRAM fixed this for me.
    Resetting PRAM:
    Start up computer hold down CommandOption+PR
    Hold until 2nd startup sound
    Hope it works for you!

  • Acquiring Images using the USB port

    I want to acquire Images using the USB port of the PC. Is it possible to acquire images using the USB port and analyze the image using IMAQ library. If we use the USB port direct then we may not need the IMAQ vision acquisition card.

    Try Irene's drivers (see previous answer above), or Peter Parente's webcam drivers (www.mindofpete.org).
    cheers,
    Christopher
    Christopher G. Relf
    Certified LabVIEW Developer
    [email protected]
    International Voicemail & Fax: +61 2 8080 8132
    Australian Voicemail & Fax: (02) 8080 8132
    EULA
    1) This is a private email, and although the views expressed within it may not be purely my own, unless specifically referenced I do not suggest they are necessarily associated with anyone else including, but not limited to, my employer(s).
    2) This email has NOT been scanned for virii - attached file(s), if any, are provided as is. By copying, detaching and/or opening attached files, you agree to indemnify the sender of such responsib
    ility.
    3) Because e-mail can be altered electronically, the integrity of this communication cannot be guaranteed.
    Copyright © 2004-2015 Christopher G. Relf. Some Rights Reserved. This posting is licensed under a Creative Commons Attribution 2.5 License.

  • I would like to be able to size images by kilobytes instead of pixels--is this possible?  I use I-Contact which requires a maximum of 70kb per image.  For best quality I want to make the images as close to 70 as possible.  Currently I choose a size of 300

    I would like to be able to size images by kilobytes instead of pixels--is this possible?  I use I-Contact which requires a maximum of 70kb per image.  For best quality I want to make the images as close to 70 as possible.  Currently I choose a size of 300 pixels on the shortest side but sometimes this gives me an image of slightly greater than 70kb and sometimes the image is just 30-40kb.  Is there a way to be more precise in reaching but not exceeding 70 kb?

    That is not a feature of iPhoto - suggest to Apple - iPhoto Menu ==> provide iPhoto feedback.
    You can opnly resize using the available options and file size is not one of them
    LN

  • How to use a counter to build a Logic Analyzer?

    Hi guys, i have heard that we can use a counter as a Logic Analyzer based on an incoming signal and its clock frequency. Anyone know how this works?
    I am trying to read a set of signals, which I have no knowledge of  except that there would a Clock, reset and a data line; and I want to develop a Logic Analyzer to 'know' these signals.
    Thanks, Anoop
    Solved!
    Go to Solution.

    Lynn,
    I have a PXI-7813R, which along with its FPGA is sufficient I believe for this purpose.
    How many digital signals do you need to examine simultaneously?
    Well, I am not sure, but based on the signals generated by similar devices, I would guess between 4 and 6. I expect there to be a Clk, Rst, Data and some other signals.
    What is the maximum frequency?
    I have no idea or how to even come up with a guess on this one.
    What is the maximum and minimum number of samples per signal that you need to capture?
    Again, not a clue. Would it not depend on the Clk frequency?
    Are any of the signals ever in a high impedance (tri-state) mode?  
    Again, don't know, sorry.
    Is the minimum pulse width for non-clock signals the clock period, half the clock period, or something else?
    Sorry again.
    How would you go about in this situation?

  • Just updated to 6.0 and I'm noticing random white pixels on black images.

    Just updated to 6.0 and I'm noticing random white pixels on black images. It's not my monitor since this doesn't happen to any other browsers. It might also be a plugin.

    Clear Cookies & Cache
    * https://support.mozilla.com/en-US/kb/Template:clearCookiesCache
    Clear the Network Cache
    * https://support.mozilla.com/en-US/kb/How%20to%20clear%20the%20cache#w_clear-the-cache
    Troubleshooting extensions and themes
    * https://support.mozilla.com/en-US/kb/Troubleshooting%20extensions%20and%20themes
    Update All your Firefox Plugins
    * https://www-trunk.stage.mozilla.com/en-US/plugincheck/
    * http://www.mozilla.com/en-US/plugincheck/
    Troubleshooting plugins
    * https://support.mozilla.com/en-US/kb/Troubleshooting%20plugins
    Check and tell if its working.

  • Resizing an Image using pixels

    Hi I used to use Photoshop CS4 on another computer. I resize a lot of my images to 1024 pixel width. Howver in Photoshop Elements 7 (which I have just bought) and I can't find out how to resize the image using pixels as the units. I am doing 'Image Resize' It has a lot of units to choose from e.g. inches/picas/points. But no pixels. Please help! Thank you very much.
    Rich

    The top section is pixels. Turn on Resample Image and you can make changes there.

  • When using 'sponge' effect on a fill, how do I get rid of the white 'pixellations' (if that is what they are called around the edges of the fill?

    When using 'sponge' effect on a fill, how do I get rid of the white 'pixellations' (if that is what they are called around the edges of the fill?

    I tried to give you this solution before, but maybe you missed it. This simple procedure will mask out all the various sponge edge-artifacts. Here it is in simple steps:
    1. Make the path shape you want to apply the sponge effect to.
    2. Highlight that path, and select Object > Path > Offset path ... choose +2 points (or whatever works for your drawing scale, to ultimately eliminate the outside line and the artifacts) -- this will make a slightly larger shape, based on the original shape.
    3. Cut the outside path (command or alt-X), select the inside path, and paste the outer path BEHIND the inner path (command or alt-B).
    4. Apply the sponge effect to the OUTER path.
    5. Highlight BOTH paths, and create a MASK (command or alt-7).
    Now you have your original shape, with sponge applied, and the outer 2 points (or whatever your Offset Path was set to), are masked out, masking out the outside line and the sponge artifacts.
    This works with any Document Raster Effect Settings dpi.

  • Is it possible to tell me how i can make program in labview that take pixels of black and withe image and give coordinate of black or white pixels back to me.

    hello everybody
    is it possible to tell me how i can make program in labview that take pixels of black and withe image and give coordinate of black or white pixels back to me.
    Solved!
    Go to Solution.

    Here's a slightly simpler version.
    (Depending how you want to process the output, you might not need to traspose and/or reverse. Boolean to 0,1 works directly on the 2D array if needed )
    amkamyab wrote:
    it is good. i could enter 1bit image in and show it in array. now i want to take pixels coordinates. i meen i want to have (x,y) of each pixel to send it pixel coordinate to another program i wrote for steppers motor.
    Can you be a bit more specific on how the output is supposed to look like? Initially you wrote "black or white", and since all pixels are either black or white, do you want to send all pixels? In what format? In what order? Please clarify?
    LabVIEW Champion . Do more with less code and in less time .
    Attachments:
    BW-Pix.png ‏8 KB

  • Can I use box-counting method to calculate fractal dimension in Photoshop CS6?

    Can I use box-counting method to calculate fractal dimension in Photoshop CS6?

    If you have a thresholded image, then you can use the mosaic filter and histograms to count coverage.
    Iterate with mosaic at different sizes, use the histograms to see how many are black and white at east mosaic size.
    Or resize the image, re-threshold, and again use the histogram to get a count.
    That should be automatable with a script.

  • RE: Transparent areas on images used inPictureButton

    I have never had any success in getting Forte to recognize the transparent
    areas of GIF images on PictureButtons. I use two different techniques to
    achieve this "transparent" look:
    (1) Monochrome bitmaps DO behave as truly transparent images, both on
    PictureButtons and in OutlineFields, under all Forte's supported
    windowing systems and no matter what you use for the FillColor of
    the button or outline. (But then of course you can't use colours
    in your image.)
    (2) If the PictureButton's FillColor is Inherit or White, you will see
    that any white pixels in your image appear grey. You can make use
    of this by making the background of the image some colour which is
    not used in the picture itself, and setting the FillColor of the
    PictureButton to that colour. You have to choose this colour carefully.
    Even if you pick a colour from the standard Windows 16-colour palette,
    say red, you will find that it doesn't match the Forte colour Bright Red
    under all possible Control Panel colour depth settings. The only
    colours which work all the time are white, black and light grey (Forte's
    Gray 2) but of course these are all colours you normally want to use
    in the picture itself! If you are developing exclusively for Windows
    clients, you can always use Gray 2, since the PictureButtons are going
    to look this colour anyway, regardless of the FillColor you assign or
    the button colour the user has chosen in the Control Panel Display
    settings. (At least, this is so for V2 - I don't know about V3 but
    from what you've said it sounds like it is the same.)
    I would love to know if there are any other ways to do this because I
    nearly went mad trying to make images on PictureButtons and OutlineFields
    transparent under all 3 windowing systems!
    Fiona Symon,
    Babylon Software Pty Ltd.

    I tried expanding the canvas (using Photoshop) to a 16 x 9 width-to-height ratio with Black fill. Worked perfectly in iPhoto.
    Thanks for the tip about the wrong aspect ratio.

  • To retain color space value for Monochrome images during flattening.

    In our project, we are extracting image content from PDF file and doing some raster operation by using LeadTool and then flattening the processed image in PDF file.
    Input PDf file: One page which has monochrome image
    For extracting image content from PDF file, we are using below Acro Plugin API:
    AVConversionConvertFromPDFWithHandler
    After this, we will perform some raster operations by using LeadTool and then flattening will happen.
    While doing flatten we are performing below operations in sequence:
    1. Set bitspercomponent  =1.
    2. Create a new color table using DeviceRGB.
    3. Create image by using below Acro Plugin API:
    pdeimage = PDEImageCreate(&attrs, sizeof(attrs), &matrix, 0, cols1, NULL, &fil, asstm, NULL, 0);
    4. Add image in PDF content.
    Now flattening is successful, but monochrome(Original Image format) is changed to RGB. We want to retain the color space(DeviceGrey).
    We have tried the below solution to retain the color space:
    1. Using the old image's color space value for new image creation. But this gives inverted color(Black to White and vice versa)
    Please help us to retain the color space while flattening.

    We are using JPG file format.
    Please find below the code portions which we used to add image in PDF file,
    //Read Image Data
    ========================================================================================== ==================
    ASBool ret = TRUE;
    // analyze img
    ASInt32 index = 0, quadSize = 0;
    BITMAPFILEHEADER* bmfh = NULL;
    // BITMAPFILEHEADER
    if(  !bQuadSize )
      bmfh = (BITMAPFILEHEADER*)img;
      index += sizeof(BITMAPFILEHEADER);
    // BITMAPINFOHEADER
    BITMAPINFOHEADER* bmih = (BITMAPINFOHEADER*)(img+index);
    index += sizeof(BITMAPINFOHEADER);
    // RGBQUAD
    if( !bQuadSize )
      quadSize = bmfh->bfOffBits - sizeof(BITMAPFILEHEADER) - sizeof(BITMAPINFOHEADER);
    else
      quadSize = size -  bmih->biSize -  bmih->biSizeImage;
    ASInt32 rgbquadNum = 0;
    char* quad = NULL;
    if (quadSize > 0)
      rgbquadNum = quadSize/sizeof(RGBQUAD);
      quad = (char*)(img+index);
      index += quadSize;
    // Image
    //ULONG imgSize = size - bmfh->bfOffBits;
    char* image = (img+index);
    DURING
       if(!pd)
        E_RETURN(FALSE);
       PDPage pp = PDDocAcquirePage(pd, page-1); // Get Page(PDPage) of specified page number
       PDEContent pdeContent = PDPageAcquirePDEContent(pp, gExtensionID); // Get PageContent(PDEContent)
       ASInt32 numElems = PDEContentGetNumElems(pdeContent);  // Get PageContent num
       // Check BitMap width, height, biXPelsPerMeter, biYPelsPerMeter changed
       ASFixedRect mb;
       PDPageGetMediaBox(pp, &mb);
       ASFixedRect chgMediaBox;
       memset(&chgMediaBox, 0 , sizeof(ASFixedRect));
       if (paperSizeChangeType == PAPERSIZE_SIZESPECIFICATION)
        chgMediaBox.right = width;
        chgMediaBox.top = height;
       // Get PDEImage's Attributes & Filters & ColorSpace from Old Image in PDF file
    ========================================================================================== ===================================
       PDEElement pdeElement;
       ASInt32 importIndex;
       ASInt32 type;
       PDEImageAttrs attrs1;
       PDEColorSpace cols1;
       //ASAtom colname;
       PDEFilterArray fil1[20];
       ASInt32 filNum1;
       ASFixedMatrix matrix1;
       bool isTransformedPage = false; //EV2.8.02000_19651_Retain color space_20141016
       for (int i = 0; i < numElems; i++)
        pdeElement = PDEContentGetElem(pdeContent, i);
        PDEObject obj=_objHelper.TraversePDPageContentsImage((PDEObject)pdeElement);
         if(obj == NULL)
          continue;
         pdeElement= (PDEElement)obj;
        type = PDEObjectGetType((PDEObject)pdeElement);
        if (type == kPDEImage)
         // Get Attr
         PDEImageGetAttrs((PDEImage)pdeElement, &attrs1, sizeof(PDEImageAttrs));
         // Get ColorSpace
         cols1 = PDEImageGetColorSpace((PDEImage)pdeElement);
         // Get Filter Array
         filNum1 = PDEImageGetFilterArray((PDEImage)pdeElement, fil1);
         // Get ASFixedMatrix
         PDEElementGetMatrix(pdeElement, &matrix1);
         //EV2.8.02000_19651_Retain color space_20141016 - Start
         if (matrix1.a < 0 || matrix1.b < 0 ||
                        matrix1.c < 0 || matrix1.d < 0 ||
                        matrix1.h < 0 || matrix1.v < 0)
          isTransformedPage = true;
         //EV2.8.02000_19651_Retain color space_20141016 - End
         // Set Import and Delete Index
         importIndex = i;
         break;
       // Create image data (for PDEImage)
    ========================================================================================== =================================
       ASInt32 bitPerComponent = bmih->biBitCount;
       ASInt32 bitWidth = 0;
       ASInt32 width1 = bmih->biWidth;
       ASInt32 height1 = bmih->biHeight;
       // Create image size
       if (bitPerComponent == 1)
        if (width1%8)
         bitWidth = (width1/8) + 1;
        else
         bitWidth = width1/8;
       else if (bitPerComponent == 4)
        if (width1%2)
         bitWidth = (width1/2)+1;
        else
         bitWidth = width1/2;
       else if (bitPerComponent == 8)
        bitWidth = width1;
       else if (bitPerComponent == 32)
        bitWidth = width1*4;
       else // if (bitPerComponent == 24)
        bitWidth = width1*3;
       ASInt32 imgSize4Acrobat = height1 * bitWidth;
       char* image4Acrobat = (char*)ASmalloc(imgSize4Acrobat);
       if( image4Acrobat == NULL )
        E_RETURN(FALSE);
       memset(image4Acrobat, 0, imgSize4Acrobat);
       // Create image
       ASInt32 nokori = (bitWidth)%4;
       ASInt32 bitWidth4hokan = 0;
       if (nokori)
        bitWidth4hokan = bitWidth + (4-nokori);
       else
        bitWidth4hokan = bitWidth;
       ASInt32 hbw = 0;
       ASInt32 hbw4hokan = 0;
       if (bitPerComponent == 1)
        for (int k = height1-1, l = 0; k >= 0; k--, l++)
         hbw = l*bitWidth;
         hbw4hokan = k*bitWidth4hokan;
         memcpy((image4Acrobat+hbw), (image+hbw4hokan), bitWidth);
       else if (bitPerComponent == 4)
        for (int k = height1-1, l = 0; k >= 0; k--, l++)
         hbw = l*bitWidth;
         hbw4hokan = k*bitWidth4hokan;
         memcpy((image4Acrobat+hbw), (image+hbw4hokan), bitWidth);
       else if (bitPerComponent == 8)
        for (int k = height1-1, l = 0; k >= 0; k--, l++)
         hbw = l*bitWidth;
         hbw4hokan = k*bitWidth4hokan;
         memcpy((image4Acrobat+hbw), (image+hbw4hokan), bitWidth);
       else if (bitPerComponent == 32)
        for (int k = height1-1, l = 0; k >= 0; k--, l++)
         hbw = l*bitWidth;
         hbw4hokan = k*bitWidth4hokan;
         for (int kk = 0; kk < bitWidth; kk += 4)
          *(image4Acrobat+hbw+kk) = *(image+hbw4hokan+(kk+3));
          *(image4Acrobat+hbw+kk+1) = *(image+hbw4hokan+(kk+2));
          *(image4Acrobat+hbw+kk+2) = *(image+hbw4hokan+(kk+1));
          *(image4Acrobat+hbw+kk+3) = *(image+hbw4hokan+(kk));
       else
        for (int k = height1-1, l = 0; k >= 0; k--, l++)
         hbw = l*bitWidth;
         hbw4hokan = k*bitWidth4hokan;
         for (int kk = 0; kk < bitWidth; kk += 3)
          *(image4Acrobat+hbw+kk) = *(image+hbw4hokan+(kk+2));
          *(image4Acrobat+hbw+kk+1) = *(image+hbw4hokan+(kk+1));
          *(image4Acrobat+hbw+kk+2) = *(image+hbw4hokan+(kk));
       //Invert Image Data
    ========================================================================================== ================================
       for(int it = 0; it < imgSize4Acrobat; it++)
          image4Acrobat[it] = 255 -image4Acrobat[it];
       // Open Image Data
    ========================================================================================== ================================
       ASStm asstm = ASMemStmRdOpen(image4Acrobat, imgSize4Acrobat);  
       // Create PDEImage Attribute etc.
    ========================================================================================== ================================
       PDEImageAttrs attrs;
       memset(&attrs, 0, sizeof(PDEImageAttrs)); // necessary
       attrs.width = width1;
       attrs.height = height1;
       if (bitPerComponent == 1) {
        attrs.bitsPerComponent = 1;
        if (rgbquadNum) {
         attrs.flags = kPDEImageIsIndexed | kPDEImageExternal; // Indicates image uses an indexed color space.
        } else {
         attrs.flags = kPDEImageExternal; // Indicates image is an XObject.
         // B&W
       } else if (bitPerComponent == 4) {
        attrs.bitsPerComponent = 4;
        if (rgbquadNum) {
         attrs.flags = kPDEImageIsIndexed | kPDEImageExternal; // Indicates image uses an indexed color space.
        } else {
         attrs.flags = kPDEImageExternal; // Indicates image is an XObject.
       } else if (bitPerComponent == 8) {
        attrs.bitsPerComponent = 8;
        if (rgbquadNum) {
         attrs.flags = kPDEImageIsIndexed | kPDEImageExternal; // Indicates image uses an indexed color space.
        } else {
         attrs.flags = kPDEImageExternal; // Indicates image is an XObject.
       } else if (bitPerComponent == 32) {
        // not support (acrobat)
       } else { // (bitPerComponent == 24)
        attrs.flags = kPDEImageExternal;  // Indicates image is an XObject.
        attrs.bitsPerComponent = 8;
       // matrix
       ASFixedMatrix matrix;
       memcpy(&matrix, &matrix1, sizeof(matrix1));
       if (paperSizeChangeType == PAPERSIZE_SIZESPECIFICATION)
        matrix.a = chgMediaBox.right;
        matrix.b = 0;
        matrix.c = 0;
        matrix.d = chgMediaBox.top;
        matrix.h = 0;
        matrix.v = 0;
       // Filter
       PDEFilterArray fil;
       memset (&fil, 0, sizeof (PDEFilterArray));
       PDEFilterSpec spec;
       memset (&spec, 0, sizeof (PDEFilterSpec));
       memcpy(&fil, &fil1, sizeof(PDEFilterArray));
       CosDoc cosDoc;
       CosObj cosDict;
       // Build the CosObj for the filter specification
       cosDoc = PDDocGetCosDoc(pd);
       cosDict = CosNewDict(cosDoc, false, 2);
       CosDictPut(cosDict, ASAtomFromString("K"), CosNewInteger (cosDoc, false, -1));
       CosDictPut(cosDict, ASAtomFromString("Columns"), CosNewInteger (cosDoc, false, width1));
       //memset the filterspec so there are no garbage values if we leave members empty
       spec.encodeParms = cosDict;
       spec.decodeParms = cosDict;
       spec.name = ASAtomFromString("CCITTFaxDecode"); 
       fil.spec[0] = spec;
       // Create PDEImage
    ========================================================================================== =================================
       PDEImage pdeimage;
       pdeimage = PDEImageCreate(&attrs, sizeof(attrs), &matrix, 0, cols1, NULL, &fil, asstm, NULL, 0);
       // Delete PDEImage at importIndex(==j) of page -> Delete old image in PDF file
    ========================================================================================== ====================
       PDEContentRemoveElem(pdeContent, importIndex);
       // Add PDEImage
    ========================================================================================== ==========================
       PDEContentAddElem(pdeContent, importIndex, (PDEElement)pdeimage);
       PDPageSetPDEContent (pp, gExtensionID);
       PDPageReleasePDEContent(pp, gExtensionID);
       // Release object
       PDERelease((PDEObject)pdeimage);
       PDPageNotifyContentsDidChangeEx(pp, TRUE);
       PDPageRelease(pp);
       ASStmClose(asstm);
       if (image4Acrobat)
        ASfree(image4Acrobat);
       if (lookupTable)
        ASfree(lookupTable);
      HANDLER
       ret = FALSE;
      END_HANDLER
    return ret;

  • How to create Image from 8-bit grayscal pixel matrix

    Hi,
    I am trying to display image from fingerprintscanner.
    To communicate with the scanner I use JNI
    I've wrote java code which get the image from C++ as a byte[].
    To display image I use as sample code from forum tring to display the image.
    http://forum.java.sun.com/thread.jspa?forumID=20&threadID=628129
    import java.awt.*;
    import java.awt.color.*;
    import java.awt.image.*;
    import java.io.*;
    import java.util.*;
    import javax.imageio.*;
    import javax.swing.*;
    public class Example {
    public static void main(String[] args) throws IOException {
    final int H = 400;
    final int W = 600;
    byte[] pixels = createPixels(W*H);
    BufferedImage image = toImage(pixels, W, H);
    display(image);
    ImageIO.write(image, "jpeg", new File("static.jpeg"));
    public static void _main(String[] args) throws IOException {
    BufferedImage m = new BufferedImage(1, 1, BufferedImage.TYPE_BYTE_GRAY);
    WritableRaster r = m.getRaster();
    System.out.println(r.getClass());
    static byte[] createPixels(int size){
    byte[] pixels = new byte[size];
    Random r = new Random();
    r.nextBytes(pixels);
    return pixels;
    static BufferedImage toImage(byte[] pixels, int w, int h) {
    DataBuffer db = new DataBufferByte(pixels, w*h);
    WritableRaster raster = Raster.createInterleavedRaster(db,
    w, h, w, 1, new int[]{0}, null);
    ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_GRAY);
    ColorModel cm = new ComponentColorModel(cs, false, false,
    Transparency.OPAQUE, DataBuffer.TYPE_BYTE);
    return new BufferedImage(cm, raster, false, null);
    static void display(BufferedImage image) {
    final JFrame f = new JFrame("");
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.getContentPane().add(new JLabel(new ImageIcon(image)));
    f.pack();
    SwingUtilities.invokeLater(new Runnable(){
    public void run() {
    f.setLocationRelativeTo(null);
    f.setVisible(true);
    And I see only white pixels on black background.
    Here is description of C++ method:
    GetImage
    Syntax: unsigned char* GetImage(int handle)
    Description: This function grabs the image of a fingerprint from the UFIS scanner.
    Parameters: Handle of the scanner
    Return values: Pointer to 1D-array, which contains the 8-bit grayscale pixel matrix line by line.
    here is sample C++ code which works fine to show image in C++
    void Show(unsigned char * bitmap, int W, int H, CClientDC & ClientDC)
    int i, j;
    short color;
    for(i = 0; i < H; i++) {
         for(j = 0; j < W; j++) {
         color = (unsigned char)bitmap[j+i*W];
         ClientDC.SetPixel(j,i,RGB(color,color,color));
    Will appreciate your help .

    Hi Joel,
    The database nls parameters are:
    select * from nls_database_parameters;
    NLS_LANGUAGE AMERICAN
    NLS_TERRITORY AMERICA
    NLS_CURRENCY $
    NLS_ISO_CURRENCY AMERICA
    NLS_NUMERIC_CHARACTERS .,
    NLS_CHARACTERSET CL8MSWIN1251
    NLS_CALENDAR GREGORIAN
    NLS_DATE_FORMAT DD-MON-RR
    NLS_DATE_LANGUAGE AMERICAN
    NLS_SORT BINARY
    NLS_TIME_FORMAT HH.MI.SSXFF AM
    NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
    NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
    NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
    NLS_DUAL_CURRENCY $
    NLS_COMP BINARY
    NLS_LENGTH_SEMANTICS BYTE
    NLS_NCHAR_CONV_EXCP FALSE
    NLS_NCHAR_CHARACTERSET AL16UTF16
    NLS_RDBMS_VERSION 9.2.0.4.0
    Part of the email header:
    Content-Type: multipart/alternative; boundary="---=1T02D27M75MU981T02D27M75MU98"
    -----=1T02D27M75MU981T02D27M75MU98
    -----=1T02D27M75MU981T02D27M75MU98
    Content-Type: text/plain; charset=us-ascii
    -----=1T02D27M75MU981T02D27M75MU98
    Content-Type: text/html;
    -----=1T02D27M75MU981T02D27M75MU98--
    I think that something is wrong in the WWV_FLOW_MAIL package. In order to send 8-bit characters must be used UTL_SMTP.WRITE_ROW_DATA instead of the UTL_SMTP.WRITE_DATA.
    Regards,
    Roumen

  • Bitmap images using Dreamweaver 4

    I have Dreamweaver version 4, and though I can insert JPEG,
    PNG, and GIF images the application won't let me insert BMP files
    (I insert them, but the image won't appear). Is there any way I can
    fix this?
    thanks.

    >>BMP files are displayed by > Internet Explorer
    *only*
    Depends on the kind of BMP file it is. And could depend on
    the graphics card
    of the users computer.
    A BMP is a type of bitmap raster graphic in a data file
    representing
    generally rectangular grid of pixels (points of colour). The
    colour of each
    pixel is individually defined usually in three bytes...one
    byte for each
    portion of the RGB colour space.
    Photoshop reserves the term "bitmap" for one-bit/channel
    images (pure black
    or white).
    Microsoft's BMP files are generally compressed and need not
    even contain
    bitmap data (they can contain indexes into palettes).
    The monitor doesn't get the raster image. Rather, it gets a
    signal which
    scans the screen 60 times a second. It's the graphics card
    that gets the
    raster: it contains memory which it can read and the computer
    can write. Of
    the several ways the raster could be stored in that memory -
    all the red
    values together, or the threee colours for each pixel
    together, and
    vertically or horizontally, etc. etc. - most are in use by
    various graphics
    cards. It's the job of the device driver toy copy that memory
    in the correct
    format for the card.
    > because the format was invented by Microsoft (I'm
    guessing.)
    I believe the BMP format was originally developed by IBM but
    evolved through
    several states by Micosoft since. Microsoft "invented"
    version 4 and version
    5, BMP formats, for instance.

  • Particles "white pixel" Bug

    I discovered that when using Particle Playground, with the particle type set to faded sphere, and the color of the particle set in the purple/violet hue range, that a ring of white pixels dust appears around the circumference of each particle. If I change the particle color to green or orange or something outside the violet range, the artifact vanishes.
    This is in CS3, and it appears during both preview and render to RAM.

    The pure white pixels are abruptly-gone when the hue is rotated away from the violet range, so I don't think it's an HDR issue. Also, I noticed on the larger particles passing closer to the 'camera' that the white pixels form a complete circle, which gets cropped off as the 'bubble' (what the white pixel outline looks like) passes about 1/4 of the preview window width to the right. The left 1/4 of the window shows this artifact--the rest does not. I also confirmed that this does not show up on rendered images.

Maybe you are looking for