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;

Similar Messages

  • Color Space info for images

    Hi all,
    I would like to show the color space details for an image. Do you know what field mapping is required?
    Thanks,
    A.

    >> images are still a bit washed out with a warmish/ yellow cast to them, particularly, my black and white images
    Here is a simple test to help evaluate if the monitor profile is reasonably good:
    Open a RGB file in Photoshop (flatten if not already flattened).
    Press M key> Drag a selection> Com+Shift+U (Desaturate).
    Com+Z (to toggle back and forth).
    If the unsaturated selection looks neutral you've got a reasonably fair monitor profile.
    If selection has color casts (not neutral) -- you have a bad monitor profile
    +++++
    Here is a simple test to help evaluate if a bad monitor profile is whacking out your Photoshop color:
    Monitors/Displays (control panel)> Color> highlight AppleRGB or sRGB (don't run Calibrate), quit and reboot.
    If the Photoshop colors are back under control, then the problem was most surely a bad monitor profile go back into Monitors/Displays> Color and Calibrate a good profile highlight (load) sRGB, or preferably, the monitor's OEM profile as a starting point.
    If you are using a puck, it is likely defective; or your monitor hardware is the culprit...search it on Google by model number

  • Color space question for photoshop cs on mac os10

    I'm sure this has been beaten to death here before. I've been dealing with color space issues for months now, and I'm about at my wits end.
    I realize that I should be saving in sRGB in order to get the same looking photo on the web that I get in photoshop. I go image-mode- convert to profile- destination space- profile: srgb profile. I've tried saving for web. I check "ICC" when I do that. When I just save an image as a jpeg (from a tiff), I check the box that says, "embed color profile." Still, my images look washed out on my website (which I made with iweb)- which I'm trying to put my images in a new web interface (flash palette) and my images STILL look washed out. The weird thing is, I NEVER have this issue when I upload images to photobucket or to the photography forum that I frequent.
    What the heck am I doing wrong??
    Thanks,
    Hope

    >> images are still a bit washed out with a warmish/ yellow cast to them, particularly, my black and white images
    Here is a simple test to help evaluate if the monitor profile is reasonably good:
    Open a RGB file in Photoshop (flatten if not already flattened).
    Press M key> Drag a selection> Com+Shift+U (Desaturate).
    Com+Z (to toggle back and forth).
    If the unsaturated selection looks neutral you've got a reasonably fair monitor profile.
    If selection has color casts (not neutral) -- you have a bad monitor profile
    +++++
    Here is a simple test to help evaluate if a bad monitor profile is whacking out your Photoshop color:
    Monitors/Displays (control panel)> Color> highlight AppleRGB or sRGB (don't run Calibrate), quit and reboot.
    If the Photoshop colors are back under control, then the problem was most surely a bad monitor profile go back into Monitors/Displays> Color and Calibrate a good profile highlight (load) sRGB, or preferably, the monitor's OEM profile as a starting point.
    If you are using a puck, it is likely defective; or your monitor hardware is the culprit...search it on Google by model number

  • Color space support for png files

    kindly suggesting :
    color space support for png files, requiring the support (read/write) of the chunks: iCCP, cHRM, gAMA, sRGB

    Hi ChrisT,
    Thanks for the suggestion. I went to:
    http://h10025.www1.hp.com/ewfrf/wc/softwareCategory?os=4063&lc=en&cc=us&dlc=en&sw_lang=&product=4148...
    Which is the software update page for my model. I see 10 items under Software Solutions, 8 of which are just video tutorial updates, not actual application updates (and none of those are for the Photo App). The two application updates are:
    HP TouchSmart Recipe Box Application Update
    HP Support Assistant Application Update
    So, are you saying that PNG file types are supported in some versions of the Photo App and I don't have the correct version? Or in other words, what am I missing?
    Cheers,
    D

  • Getting pixel values for an image

    Hi,
    I am trying to compare images to detect where the differences between them occur. I am encountering a few problems
    1) when i print out the pixel values for the image,all values are the same - clearly wrong, code i use:
    ImageIcon icon = new ImageIcon("x.jpg");
    Image image = icon.getImage();
    int width = image.getWidth(null);
    int height = image.getHeight(null);
    BufferedImage buffImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    int[] rgbs = new int[width*height];
    buffImage.getRGB(0, 0, width, height, rgbs, 0, width);
    for(int i = 0; i<width;i++){
    for(int j = 0; j<height; j++){
    int rgb = buffImage.getRGB(i, j);
    System.out.println("pixel @(" + i + "," + j + ") " + rgb );
    and 2)when i compare 2 completely different images my code tells me they are the same...
    for(int i = 0; i<width;i++){
    for(int j = 0; j<height; j++){
    int rgb1 = buffImage.getRGB(i, j);
    int rgb2 = buffImage2.getRGB(i, j);
    if(rgb1 == rgb2)
    matches++;
    weHaveAMatch = ((int)((float)matches/(float)pixelCount*100) >= tolerance);
    Can any1 please tell me what I am doing wrong or show me how to detect differences between images correctly. Any help is much appreciated

    so my for loops were just in the wrong order?No, I don't think you were looping over the image you loaded. It appears that you load one image, but loop over another newly created (hence, blank) image.
    I'm having trouble using BufferedImage im = ImageIO.read.. the compiler is telling
    me that the method read is not recognised even though i have imported
    import javax.imageio.*;you must learn to read the APIs and pay attention to the compiler error messages. ImageIO.read takes either a
    -File
    -InputStream
    -URL
    -ImageInputStream
    In my example, I pass in a File, so it works. You must still be passing a String.
    When i create a bufferedImage the way i originally did,the values printed out are still all -16777216.Yes, because you created a new, blank image, so the value reflects this.
    Sorry i'm a complete beginner, can u give me some guidence!Thats ok, everyone is at some time. Guidance : read and understand.

  • Which color space to save still images for FCP?

    When saving still images as TIFF files to be brought into FCP, what color space should the files be saved in? The Adobe color space or SRGB, or other?
    Thanks.

    sRGB/JPEG is the best because all the color information is encoded in the actual image when you create a JPEG, as JPEGs don't carry color space information with them, like .PSD and .TIFF do.
    As for sRGB, that is as close as there is to a universal color space for monitors, and you are least likely to find a surprise when you check across many monitors. The tradeoff is a reduced color gamut if you display on a well calibrated broad gamut monitor.
    The gamma matters all the way through, if you want what you see in Photoshop to match what you see on a calibrated display monitor. The newest Photoshop, and Lightroom, use a native gamma of 2.2, which matches all video displays (not computer displays). If you generate JPEGs from them, they will have a gamma of 2.2. You then need to import them into FCP with a gamma of 2.2 for the interpretation. If you go directly to DVD from there, all is fine. If you go to a Quicktime movie, you need to know what the codec you plan to use will do. ProRes maintains the existing gamma, H.264 lightens up to 1.8, as does animation. I haven't characterized the others.

  • How to find the Color Space name for a PDEElement

    Hi
    I am trying to find out the color space for each PDEElement in my PDF file. While doing this,
    I put some debug statements ( cout stmts ) that print the color_space as integer values. I gave this list
    after the code.  I belive the color spaces should be something like CMYK, DeviceRGB,DeviceGray..etc.
    How can I know the actual color space name coresponding to these numbers printed in Debug statements.
    Kindly please help me..
    void   ProcessElementDetails(PDEElement  element)
                    PDEGraphicState  gfx_state;
                    ASInt32  pdeType =  PDEObjectGetType(reinterpret_cast<PDEObject>(element));
        ofstream outfile("E:\\temp\\test.txt",ios::app);
        outfile<<"ProcessElementDetails\n";
        if ( pdeType == kPDEText )
          outfile<<"PDE Text type\n";
          PDEText pde_text = (PDEText) element;
          ASInt32 num_run,i;
              num_run = PDETextGetNumRuns(pde_text);
          outfile<<"Number of Runs for PDEText :"<<num_run<<"\n";
          for  (i = 0; i < num_run; i++)
            PDETextGetGState(pde_text,kPDETextRun,i,&gfx_state, sizeof (PDEGraphicState));
            ASAtom  color_space =  PDEColorSpaceGetName(gfx_state.fillColorSpec.space);
            outfile<<"Color Space :"<<color_space<<"\n";
        if (pdeType == kPDEImage )
          outfile<<"PDE Image type\n";
          PDEElementGetGState(element,&gfx_state,sizeof (PDEGraphicState));
          ASAtom color_space = PDEColorSpaceGetName(gfx_state.fillColorSpec.space);
          outfile<<"Color Space :"<<color_space<<"\n";
        if (pdeType == kPDEContainer)
          outfile<<"PDE Container type\n";
                            PDEContent  content =  PDEContainerGetContent(reinterpret_cast<PDEContainer>(element));
                            ASInt32  numElem =  PDEContentGetNumElems(content);
                            for  (ASInt32  i = 0; i < numElem; i++)
                                 element =  PDEContentGetElem(content, i);
                                 ProcessElementDetails(element);
    Debug statements with color numbers:
    ====================================
    ProcessElementDetails
    PDE Image type
    Color Space :700
    ProcessElementDetails
    PDE Text type
    Number of Runs for PDEText :63
    Color Space :388
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :388
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :388
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    ProcessElementDetails
    ProcessElementDetails
    PDE Text type
    Number of Runs for PDEText :38
    Color Space :389
    Color Space :700
    Color Space :390
    Color Space :388
    Color Space :390
    Color Space :388
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :390
    Color Space :389
    Color Space :700
    Color Space :700
    Color Space :700
    Color Space :700
    Color Space :700
    Color Space :700
    Color Space :700
    Color Space :700
    SeparateColorPlates
    PDF file exists
    Number of Pages:1
    Number of Elements:5

    As you may have noticed, the "numbers" you see are actually of type ASAtom -
    which is a type declared in the SDK to represent reused strings. You have to
    read the relevant documentation to learn how to use the SDK - there is no
    way around it. The Acrobat SDK is very powerful, but also a lot more
    complicated than most people expect when they start to work with it. Take
    your time to learn how to use it.
    In this particular case, you need to call this function to convert the
    ASAtom to a string:
    const char* ASAtomGetString<http://livedocs.adobe.com/acrobat_sdk/10/Acrobat10_HTMLHelp/API_References/Acrobat_API_Ref erence/AS_Layer/ASAtom.html#ASAtomGetString135%28%29>
    (ASAtom<http://livedocs.adobe.com/acrobat_sdk/10/Acrobat10_HTMLHelp/API_References/Acrobat_API_Ref erence/AS_Layer/ASAtom.html#ASAtom>atm)
    (from
    http://livedocs.adobe.com/acrobat_sdk/10/Acrobat10_HTMLHelp/API_References/Acrobat_API_Ref erence/AS_Layer/ASAtom.html
    Karl Heinz Kremer
    PDF Acrobatics Without a Net
    [email protected]
    http://www.khkonsulting.com

  • Color Space Question For Printing

    I have multiple newbie questions so please bear with me
    Normally when working in photoshop, I tend to use the RGB color space as I need the use of filters and other effects not available in CMYK, Now when printing flyers E.g A4 Sized I tend to save the PSD in RGB (Without Flattening) and then importing it into a CMYK color space in illustrator and then exporting as a PDF, as illustrator gives me the option to create bleed as well as trim marks, I have never exported a PDF from photoshop as it always gives me the option of photoshop pdf which is kinda heavy.
    My question is, is the process I use okay for printing? or do I first need to convert it into CMYK? or just export from photoshop itself?  Also, the other reason I use illustrator is if i'm making a business card with two sides, since text is better exported from illustrator.
    Could anyone tell me a simpler process for creating for digital print? Especially if I need to do some items in illustrator as well.

    >> images are still a bit washed out with a warmish/ yellow cast to them, particularly, my black and white images
    Here is a simple test to help evaluate if the monitor profile is reasonably good:
    Open a RGB file in Photoshop (flatten if not already flattened).
    Press M key> Drag a selection> Com+Shift+U (Desaturate).
    Com+Z (to toggle back and forth).
    If the unsaturated selection looks neutral you've got a reasonably fair monitor profile.
    If selection has color casts (not neutral) -- you have a bad monitor profile
    +++++
    Here is a simple test to help evaluate if a bad monitor profile is whacking out your Photoshop color:
    Monitors/Displays (control panel)> Color> highlight AppleRGB or sRGB (don't run Calibrate), quit and reboot.
    If the Photoshop colors are back under control, then the problem was most surely a bad monitor profile go back into Monitors/Displays> Color and Calibrate a good profile highlight (load) sRGB, or preferably, the monitor's OEM profile as a starting point.
    If you are using a puck, it is likely defective; or your monitor hardware is the culprit...search it on Google by model number

  • Uploading values for an image field in a web app. Nothing displays in layout.

    I've uploaded the values (using the import) for a field defined as an image in a web app. When I try to display the field, nothing shows up. The value correctly shows up when I look at Web App items after the upload / import. I've uploaded the same value in a text field, just to learn what was happening, and the text field displays the image just fine when added to the layout.
    I would like to use the image field type, as it's easier to correctly create the link when the web app is updated in the future.
    Here is what works in the layout: <a href="{tag_link to page}"> <img alt="" class="column66_award_thumb" id="thx" src="{tag_image thumb}" /></a>
    Note that {tag_image thumb} is a text field with the link stored in it. The value for each Web App Item which populates this field is a link to the image. (i.e. /Awards/139.jpg)
    Here is what I want to work: <a href="{tag_link to page}"> <img alt="" class="column66_award_thumb" id="thx" src="{tag_thumbnail image_value}" /></a>  , where {tag_thumbnail image_value} refers to a field defined as an image in the web app. It has the exact same value as {tag_image thumb}. I just copied the field values in the Excel spreadsheet (saved as .csv) when I uploaded it.
    It looks like the image field works fine only when I manually create it in the web app. If this is the case, using the upload capability disables any ability to use the image field type.
    Is there a workaround for this? Am I missing something?
    The page I'm working on is http://www.e-a-a.com/awards  When you view the source, you can see that the small thumbnail images are displaying just fine. (I'm using the text field). Whenever I substitute the image field name {tag_thumbnail image}, {tag_thumbnail image_nolink}, or {tag_thumbnail image_value}, the src value is always null.
    How do I fix?

    Hi there,
    To do it properly you need to resize the image. Prefably before you put it into BC. While you can for scale the image in CSS you do not want to do this. Why? Because the images are still very big and likely not optimised as they should be for the web.
    This means the page with these images will take a very long time to load for people, and people wont be to happy about that viewing your site.
    You need to use software such as photoshop if you have it or iphoto on a mac for example to edit, crop and size images before you upload them. If you do not have anything you can use free web based tools such as this one:
    http://pixlr.com/editor/
    You can also do this within BC itself in the file manager. If you click the image you can see options to resize it. The downside of that is that is done by pure math. It does not know what is in the photo and the results can make the image look squished etc.

  • Color space setting for new monitor?

    New HP LP2480 monitor.
    Has multiple settings for colorspace.
    For use with FCS- should I be at adobeRGB or Rec 601 or Rec 709?
    (Prior to this I used a Apple display and never messed with settings)
    Thanks

    Does anyone know the color space used in FCP?
    Avid is 601
    but I think might FCP might be 701 or RGB- yes? no?

  • Retain color to foreground in binary image

    hi
    i need some help in the java.
    I have binary image whose foreground is white nad background is black by the following code
    BufferedImage image = ImageIO.read(new File("f:/123.JPG"));
    BufferedImage bwImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_BYTE_GRAY);
    BufferedImage fgImage = //foreground image
    new BufferedImage(bwImage.getWidth(),bwImage.getHeight(),
    BufferedImage.TYPE_BINARY_IMAGE);
    now i want to retain color to the foreground only..
    can anyone help me..pleaseeeeeee

    Here is my idea to display the pic on the webpage:
    The pic is stored in DB as binary, after retrieving it, the binary data will be converted to JPEG pic. Then, the pic will be saved to the local machine automaticly. After that, I get the pic's SRC, and use html display it.
    My code is as follow (not completed), some errors in it.     public static String getPayoffSRC(Services serv, long fileId)
                                                                    throws FileNotFoundException,
                                                                  DBException,
                                                                  DbFileNotFoundException,
                                                              IOException {
            BufferedImage buffy = new BufferedImage(300, 400,
                                                        java.awt.image.BufferedImage.TYPE_INT_RGB);   
            FileOutputStream out = new FileOutputStream(serv.getFileManager().getFileDb(fileId).getFileName());
            JPEGImageEncoder jencoder = JPEGCodec.createJPEGEncoder(out);
            JPEGEncodeParam enParam = jencoder.getDefaultJPEGEncodeParam(buffy);
            enParam.setQuality(1.0F, true);
            jencoder.setJPEGEncodeParam(enParam);
            jencoder.encode(buffy);
            out.close();
            return Pic's SRC,
        }

  • Need suggestion on Color Profile settings for printing image

    I am trying to print the image below on a Xerox Docucolor 242.  Im trying to get a better understanding of profiles and all that, which I THINK I do now.
    Under Color Settings in Indesign, I have under Working Spaces, RGB is set to my monitor brand and type and CMYK is set to my exact printer.  I have both of the Color Management Policies set to Off.
    When I print the RGB version of this image, everything looks ok except for a very faded look.  Probably noticed mostly because of all the black background that is used.  When I print the CMYK version of it, it seems to print nice and dark but there is a strong white halo effect showing around both the flames which doesnt show on the screen or the RGB printout.
    Anyone know what settings are causing the faded look in the RGB printout and the halo effects in the CMYK printout?

    As others have said, this is a complex process, but one that is solvable.
    I agree with others the RGB profile should NOT be the monitor but the profile of the original image. For most midrange cameras this will be sRGB or Adobe RGB depending on the settings in the Camera when the images was captured. It is NOT arbitary and choosing the wrong profile will have a large affect on the image.
    The CMYK profile for the printer is more complex. There are two steps in calibrating and profiling a Xerox printer. First the calibration, or linearisation, sets the printer to a known state that can be repeated. This is best done with a spectrophotometer and not the CalorCal software provided by Xerox which uses a known colour chart scanned from the glass of the copier. The glass method of calibration does not calibrate correctly at the black end of the curve actually turns over reducing the available black, and is due to reflections from the glass. Calibration is normally done daily.
    When the calibration has been completed a full ICC profile is created by printing a profile chart of some 2000 colours and reading this with the spectrophotometer. This is only valid for a calibrated printer and for the type of paper used. Different papers will require different profiles. It is a once only operation.
    Another thing to watch out for is how your RGB images are being converted to CMYK. There is a setting both in the Creative suite and in the printer to set the black compensation. What you want to achieve is the same black as in the original image. In the CMYK case this will be printed as a combination of black toner pus a mixture of CMY to incread the density. The profile takes care of this for you.
    Your description of weak blacks suggests that the black me be being printed as pure black toner.
    Ian
    NZ ColourManagement.

  • What kind/size/format/color space photo for making books?

    Let me make that simpler. I have Tiffs on a drive I want to drag into iPhoto to turn into a book. Should I use tiffs? Jpgs? 16 or 8 bit? RGB or sRGB? Maybe iPhoto makes them what they need to be when I order a book?
    I haven't tried this at all yet so maybe there is no question at all. I'll have iPhoto 8 by the time I do this loaded in the 15" MBP
    Thanks
    Neil

    If you already have the photos as tiffs you can use then if you'd like and save having to convert them to jpgs. As Larry pointed out the sRGB profile is recommended by Apple. I think 8 bit is sufficient. 16 bit doubles the file size and I don't think it would make any difference. The book gets created as a pdf for uploading and printing. As for size, pixel wise, the larger the better. The pdf is configured at 300 dpi so anything over that is wasted. If you plan on any full page photos then for the optimal dpi, 300, the image would be 3300 x 2550. Most of my books have been made with photos at 2816 x 2112 and I've had no problems. I've not used any one-photo-per-full-page layouts however.
    However, if you're worried about disk space on your MBP then I'd convert them to jpgs as Larry suggested.
    TIP: For insurance against the iPhoto database corruption that many users have experienced I recommend making a backup copy of the Library6.iPhoto database file and keep it current. If problems crop up where iPhoto suddenly can't see any photos or thinks there are no photos in the library, replacing the working Library6.iPhoto file with the backup will often get the library back. By keeping it current I mean backup after each import and/or any serious editing or work on books, slideshows, calendars, cards, etc. That insures that if a problem pops up and you do need to replace the database file, you'll retain all those efforts. It doesn't take long to make the backup and it's good insurance.
    I've created an Automator workflow application (requires Tiger), iPhoto dB File Backup, that will copy the selected Library6.iPhoto file from your iPhoto Library folder to the Pictures folder, replacing any previous version of it. It's compatible with iPhoto 08 libraries and Leopard. iPhoto does not have to be closed to run the application, just idle. You can download it at Toad's Cellar. Be sure to read the Read Me pdf file.

  •      How to remember checkbox values for each image

    The situation is this: i have a horizontal list which i
    populate with images loaded from xml. After i click on any of the
    images, popup windows is displayed with checkbox. The same popup is
    displayed for all of the images after i click on them. I need to
    remember checkbox values (on/off) for each one of the images in
    horizontal list but i don't know how to do that? How can i know
    which one of the images (they are different) inside horizontal list
    i clicked on in the first place?
    thank you

    I am sorry but i don't quite follow you, i am not sure what
    you are saying so i would really appreciate it if you could explain
    it to me a little bit further. I have the following mxml code where
    i define my HorizontalList:
    <mx:HorizontalList height="326" width="935" id="imageList"
    itemRenderer="mx.controls.Image" columnWidth="427" rowHeight="320"
    itemClick="popUpWindow()" backgroundColor="#4A4A4A"
    borderColor="#444242" themeColor="#000000" verticalCenter="166"
    horizontalCenter="0">
    </mx:HorizontalList>
    and following "popUpWindow()" function which i call when
    image in HorizontalList is clicked:
    //previously i populate horizontal list with images from an
    array "slidePathAC"
    imageList.dataProvider = slidePathAC;
    public function popUpWindow():void{
    trace ("\npopUpWindow function")
    var tw:TitleWindow = new TitleWindow();
    tw.showCloseButton = true;
    tw.setStyle("borderAlpha",0.9);
    mx.managers.PopUpManager.addPopUp(tw, MainPanel, true);
    tw.width = 500;
    tw.height = 500;
    mx.managers.PopUpManager.centerPopUp(tw);
    tw.addEventListener("close",removePopUp);
    Thank you very much for your help

  • Issue in understanding the negative Wasted space value for a table while fragmentation

    Hi All,
           After running the command for getting Fragmentation on tables, i am getting a negative wasted_space for my table. However for rest of the tables i am getting positive value. Can anybody help me to understand that.
    OWNER                          TABLE_NAME                      size (kb) actual_data (kb) wasted_space (kb)
    PROVPROD                       BATCH_REQUEST_RESPONSE            4736696       4840637,48        -103941,48
    Regards,
    Arun Singh

    Thanks for such a detailed explanation. Here are the DDL for table.
    CREATE TABLE
    "PROVPROD"."BATCH_REQUEST_RESPONSE"
    "REQUESTRESPONSEID" NUMBER,
    "WORKINGID"         NUMBER
    NOT NULL ENABLE,
    "BATCHUID"        
    NUMBER NOT NULL ENABLE,
    "SOURCEAGENTID"     VARCHAR2(32 BYTE) NOT NULL
    ENABLE,
    "TRANSACTIONID"     VARCHAR2(256 BYTE),
    "BATCHENVNAME"      VARCHAR2(64 BYTE) NOT
    NULL ENABLE,
    "FILETYPE"        
    VARCHAR2(8 BYTE) NOT NULL ENABLE,
    "ISHEADER"        
    VARCHAR2(1 BYTE) NOT NULL ENABLE,
    "ROWNUMBER"         NUMBER
    NOT NULL ENABLE,
    "ROWVALUE" BLOB NOT NULL ENABLE,
    "SOSTATE"  VARCHAR2(16 BYTE) NOT NULL ENABLE,
    "SORESULT" NUMBER,
    "SOQUEUEDTS" TIMESTAMP (6),
    "SORESPONSETS" TIMESTAMP (6),
    "SOREQUESTXML" BLOB NOT NULL ENABLE,
    "SORESPONSEXML" BLOB DEFAULT EMPTY_BLOB(),
    "SOPRIORITY" NUMBER NOT NULL ENABLE,
    "SODELAY"  
    NUMBER NOT NULL ENABLE,
    "SOTYPE"     VARCHAR2(32 BYTE) NOT NULL ENABLE,
    "SOID"       NUMBER,
    "ACKREC"     VARCHAR2(1 CHAR) DEFAULT 'N',
    "FILENAME"   VARCHAR2(64 BYTE) NOT NULL ENABLE,
    PRIMARY KEY
    ("REQUESTRESPONSEID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
    COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS
    2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
    FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "PROVPROD_DATA"
    ENABLE
    SEGMENT CREATION
    IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
    STORAGE
    INITIAL 65536
    NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1
    FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE
    DEFAULT
      TABLESPACE
    "PROVPROD_DATA" LOB
    "ROWVALUE"
      STORE AS BASICFILE
    TABLESPACE
    "PROVPROD_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION NOCACHE
    LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE
    DEFAULT CELL_FLASH_CACHE DEFAULT)
    LOB
    "SOREQUESTXML"
    STORE AS BASICFILE
    TABLESPACE
    "PROVPROD_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION NOCACHE
    LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE
    DEFAULT CELL_FLASH_CACHE DEFAULT)
    LOB
    "SORESPONSEXML"
    STORE AS BASICFILE
    TABLESPACE
    "PROVPROD_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION NOCACHE
    LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE
    DEFAULT CELL_FLASH_CACHE DEFAULT)
    CREATE UNIQUE INDEX
    "PROVPROD"."SYS_C0012044" ON
    "PROVPROD"."BATCH_REQUEST_RESPONSE"
    "REQUESTRESPONSEID"
    PCTFREE 10 INITRANS 2
    MAXTRANS 255 COMPUTE STATISTICS STORAGE
    INITIAL 65536
    NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1
    FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE
    DEFAULT
    TABLESPACE
    "PROVPROD_DATA" ;
    CREATE UNIQUE INDEX
    "PROVPROD"."SYS_IL0000064787C00016$$" ON
    "PROVPROD"."BATCH_REQUEST_RESPONSE"
    PCTFREE 10
    INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1
    MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL
    DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE
    "PROVPROD_DATA" PARALLEL (DEGREE 0 INSTANCES 0) ;
    CREATE UNIQUE INDEX
    "PROVPROD"."SYS_IL0000064787C00015$$" ON
    "PROVPROD"."BATCH_REQUEST_RESPONSE" ( PCTFREE 10 INITRANS 2
    MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS
    2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
    FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE
    "PROVPROD_DATA" PARALLEL (DEGREE 0 INSTANCES 0) ;
    CREATE UNIQUE INDEX
    "PROVPROD"."SYS_IL0000064787C00010$$" ON "PROVPROD"."BATCH_REQUEST_RESPONSE"
    ( PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576
    MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE
    "PROVPROD_DATA" PARALLEL (DEGREE 0 INSTANCES 0) ;
    CREATE UNIQUE INDEX
    "PROVPROD"."TRANSACTIONIDINDX" ON
    "PROVPROD"."BATCH_REQUEST_RESPONSE"
    ("TRANSACTIONID") PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE
    STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS
    2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
    FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE
    "PROVPROD_DATA" ;
    CREATE INDEX
    "PROVPROD"."METRICSRESULTINDX" ON
    "PROVPROD"."BATCH_REQUEST_RESPONSE"
    "BATCHUID",
    "SOURCEAGENTID",
    "BATCHENVNAME"
    PCTFREE 10
    INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE
    INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0
    FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT
    CELL_FLASH_CACHE DEFAULT
        TABLESPACE
    "PROVPROD_DATA" ;

Maybe you are looking for