Cloning Semi Transparent Areas

Is it possible to clone a semi transparent area of an image without the effect being multiplied?

You could merge a copy of the layer with white and then use
peel off white to make it transparent again when you're done. Seems awkward, but works.

Similar Messages

  • Placing a semi-transparent area on top of a picture

    CS3
    I need to place some text on a photo, and to make it possible to read the text clearly, I want to place an area with a single colour on top of the picture - and the text on top of the are.
    But how can I make this area semi transparent?
    Thanks

    There is also an action under Text Effects that does a semi-transparent panel for text.
    Load the Text Effects actions into your actions panel and then make a selection for
    the size of the text panel (rectangular marquee tool) before running the action. After
    the action runs you can type your text inside the panel.
    You can move the text layer and panel layer to a different part of the image by
    selecting both layers and then using the move tool.
    MTSTUNER

  • Restoring opacity to transparent areas?

    Hi all.
    Is there a way to restore lost opacity to a layer? Let's say I have a semi-transparent area, and want to bring the opacity there back to 100%.
    Thanks. :)

    If by "hard erase" you mean a 100% transparency erase, where there is no trace of the original pixels remaining, then yeah... As John Nielsen mentioned, these "hard erases" destroy the pixel color information, so you can't bring them back (unless you fake it via Snapshots or History or something, as you mentioned).
    But what I need is a way to paint back lost transparency in images (such as PSD's, which are what I work with mostly) without having to rely on History, etc, since I may close and reopen later.
    A typical example would be some photo that I'm working on, which I save and re-open, then say, "Hey, wait a minute... I don't like the cut around this person's hair. I need to restore some lost transparency here." So, if it's not a "hard erase", I can either select it and do Layer Via Copy a bunch of times, then Merge Visible, or fake it with Snapshots (if I still have a good one - I usually crop somewhere along the line, so that throws things off a bit).
    It would just be a whole ton easier if there was a way to "paint" the transparency back on, like you can when using divine Layer Masks.

  • When using one of the Windows 7 (32x) Aero themes, PDF's are displayed semi-transparent.

    I can't read PDF's in my Firefox browser anymore. It looks as if they are semi-transparent: The fonts are blurry, and they have the same color as my Aero theme frame. I can see my desktop photo through the fonts. When I save the PDF's and open them offline, they are displayed as they should. The prints also look normal. Btw, when I change to a classic theme, PDF's are displayed normal.

    this problem also posted here: https://support.mozilla.com/en-US/questions/863361

  • Can anyone tell me why games are semi transparent in Pogo? I only have this problem with Firefox but not with IE9 or Chrome

    When I click on a game, the game window opens and is solid, but when it's fully loaded, it becomes semi transparent and washed out. I can post a screen shot of what I'm talking about if this forum supports it.

    Hi,
    Please check if this happens in [https://support.mozilla.com/en-US/kb/Safe%20Mode Safe Mode]
    Useful links:
    [https://support.mozilla.com/en-US/kb/Options%20window All about Tools > Options]
    [http://kb.mozillazine.org/About:config Going beyond Tools > Options - about:config]
    [http://kb.mozillazine.org/About:config_entries about:config Entries]
    [https://support.mozilla.com/en-US/kb/Page%20Info%20window Page Info] Tools (Alt + T) > Page Info, Right-click > View Page Info
    [https://support.mozilla.com/en-US/kb/Keyboard%20shortcuts Keyboard Shortcuts]
    [https://support.mozilla.com/en-US/kb/Viewing%20video%20in%20Firefox%20without%20a%20plugin Viewing Video without Plugins]
    [http://kb.mozillazine.org/Profile_folder_-_Firefox Firefox Profile Folder & Files]
    [https://developer.mozilla.org/en/Command_Line_Options#Browser Firefox Commands]
    [https://support.mozilla.com/en-US/kb/Basic%20Troubleshooting Basic Troubleshooting]
    [https://support.mozilla.com/en-US/kb/common-questions-after-upgrading-firefox-36 After Upgrading]
    [https://support.mozilla.com/en-US/kb/Safe%20Mode Safe Mode]
    [http://kb.mozillazine.org/Problematic_extensions Problematic Extensions]
    [https://support.mozilla.com/en-US/kb/Troubleshooting%20extensions%20and%20themes Troubleshooting Extensions and Themes]
    [https://support.mozilla.com/en-US/kb/Troubleshooting%20plugins Troubleshooting Plugins]
    [http://kb.mozillazine.org/Testing_plugins Testing Plugins]

  • Code to make area semi transparent?

    Is there a way to modify the following background color code to make my background color semi-transparent so that an image in the background shows through?
    Thanks.
    #logo {
    background-image: url(img/logo.png);
    background-repeat: repeat-x;
    background-color: #FFFFFF;
    margin: 0 auto;
    width: 1100px;

    Have you got Fireworks?
    If so open a new file and make the documents background color transparent.
    Draw a small square and color it in with a solid colour which is in the same shade range as the color you want the final background of the #logo <div>.
    Select the solid color and use the transparent box in the properties inspector to adjust the colour to suit. It may be best if you bring in your image and position it behind the colored square so you can see what the color looks like when you adjust the transparency of the color.
    Once you have adjusted it to the color required delete the image and then export a small 1px x 1px piece of the colored square. Use PNG8 with alpha transparency or PNG24.
    Use the colored square as the background image to the logo <div> instead of the logo image itself and insert the logo image directly into the logo <div>

  • Healing brush is semi-transparent

    I have Windows XP, sp2, Photoshop CS3.
    When I drag the healing brush over a section I want to heal, the sampled color looks just fine, but when I release the mouse button, the area turns semi-transparent instead of keeping the full color. I thought there was a problem with my transparency setting, but I can't seem to find where to view that, and I don't think this is the issue. If I drag the brush over the same area a few times, the area does not become more opaque.
    Perhaps I should mention that I usually use the brush to repair the borders of lines that are too indented to fix with the smudge, and I need to fill out the line a bit; the designated healing area usually has a background that has been made transparent with the eraser tool.
    Thank you so much for any help anyone can give me, I really appreciate it!

    The healing brush samples pixels of the surrounding area to be fixed. In areas where adjacent areas are different from target zone you can run into problems. Like OldBob says the clone stamp may work better as one can pick the area you are cloning from easier.

  • An Image JPanel, A semi-transparent JPanel, and non-opaque components

    This is a more intelligent re-asking of the question I posed here: http://forum.java.sun.com/thread.jspa?threadID=579298&tstart=50.
    I have a class called ImagePane, which is basically a JPanel with an image background. The code is much like the ImagePanel posted by camickr, discussed in this topic: http://forum.java.sun.com/thread.jspa?forumID=57&threadID=316074 (except mine only draws the image, it does not tile or scale it).
    On top of my ImagePane, I can place another component, TransparentContainer. This again extends JPanel, only a color is specified in the constructor, and it is drawn at about 70% opacity. This component is meant to help increase the readability of text components that blend with the background image, without blocking out the background image completely.
    This works very well, until I need to add a component, like, say, a non-opaque JRadioButton in a ButtonGroup. When you select a new JRadioButton at runtime, the semi-transparent JPanel fills with a combination of a completely opaque color (the one specifies to the TransparentContainer) and garbage from the non-opaque component being redrawn.
    I have noticed that the UI is restored to being non-messed up if you place another application window on top of it and then move it. So apparently, one solution is to redraw the entire UI, or just the part that has the JRadioButton on it, every time the radio button is clicked. However, this seems unnecessarily complicated. It seems to me that I am missing something in my TransparentContainer's paintComponent() method. Does anyone have any ideas?
    Here is my TransparentContainer code, if it will help:
    import java.awt.AlphaComposite;
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.RenderingHints;
    import javax.swing.JPanel;
    public final class TransparentContainer extends JPanel
         /* Private Fields: For use only by this class.
          *  These fields hold information needed by more
          *  than one method of this class.
         private boolean fullTransparencyEnabled;
         private Color baseColor;
         private Color outerBorderColor;
         private Color innerBorderColor;
         private int obw;
         private int ibw;
         private int cbw;
         /* -- START OF METHODS -- */
         /* public TransparentContainer(Color color, boolean fullTrans)
          *   Initiallizes the transparent container object
          *   with 'color' as its base color.
         public TransparentContainer(Color color, boolean fullTrans)
              fullTransparencyEnabled = fullTrans;
              baseColor = color;
              Color borders[] = findBorderColors();
              outerBorderColor = borders[0];
              innerBorderColor = borders[1];
              obw = 3;
              ibw = 1;
              cbw = obw + ibw;
         /* private Color[] findBorderColors(Color base)
          *   Calculates the colors for the outer and inner
          *   borders of the object based on the base color.
         private Color[] findBorderColors()
              Color borders[] = new Color[2];
              int colorData[] = new int[9];
              colorData[0] = getBaseColor().getRed();
              colorData[1] = getBaseColor().getGreen();
              colorData[2] = getBaseColor().getBlue();
              colorData[3] = colorData[0] - 50;          // outerBorder red
              colorData[4] = colorData[1] - 45;          // outerBorder green
              colorData[5] = colorData[2] - 35;          // outerBorder blue
              colorData[6] = colorData[0] + 30;          // innerBorder red
              colorData[7] = colorData[1] + 30;          // innerBorder green
              colorData[8] = colorData[2] + 20;          // innerBorder blue
              /* Make sure the new color data is not out of bounds: */
              for (int i = 3; i < colorData.length; i++)
                   if (colorData[i] > 255)
                        colorData[i] = 255;
                   else if (colorData[i] < 0)
                        colorData[i] = 0;
              borders[0] = new Color(colorData[3], colorData[4], colorData[5]);
              borders[1] = new Color(colorData[6], colorData[7], colorData[8]);
              return borders;
         /* public Color getBaseColor()
          *   Returns the baseColor of this object.
         public Color getBaseColor()
              return baseColor;
         /* public Color getOuterColor()
          *   Returns the outerBorderColor of this object.
         public Color getOuterColor()
              return outerBorderColor;
         /* public Color getInnerColor()
          *   Returns the innerBorderColor of this object.
         public Color getInnerColor()
              return innerBorderColor;
         /* public boolean getFullTransEnabled()
          *   Returns whether or not this object will render
          *   with all of its transparency effects.
         public boolean getFullTransEnabled()
              return fullTransparencyEnabled;
         /* protected void paintComponent(Graphics g)
          *   Paints the component with the borders and colors
          *   that were set up in above methods.
         protected void paintComponent(Graphics g)
              Graphics2D g2d = (Graphics2D) g;
              AlphaComposite alphaComp;
              g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
              g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
              g2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION,
                                            RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
              g2d.setColor(getBaseColor());
              /* Draw the main body of the component */
              if (getFullTransEnabled())
                   alphaComp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f);
                   g2d.setComposite(alphaComp);
              else
                   alphaComp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f);
                   g2d.setComposite(alphaComp);
              g2d.fillRect(cbw, cbw, super.getWidth() - 2 * cbw, super.getHeight() - 2 * cbw);
              alphaComp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f);
              g2d.setComposite(alphaComp);
              /* Draw the inner border: */
              g2d.setColor(getInnerColor());
              g2d.fillRect(obw, obw, ibw, super.getHeight() - obw * 2); // left border
              g2d.fillRect(obw, obw, super.getWidth() - obw, ibw); // top border
              g2d.fillRect(super.getWidth() - cbw, obw, ibw, super.getHeight() - obw * 2); // right border
              g2d.fillRect(obw, super.getHeight() - cbw, super.getWidth() - obw * 2, ibw); // bottom border
              /* Draw the outer border: */
              g2d.setColor(getOuterColor());
              g2d.fillRect(0, 0, obw, super.getHeight()); // left border
              g2d.fillRect(0, 0, super.getWidth() + obw, obw); // top border
              g2d.fillRect(super.getWidth() - obw, 0, obw, super.getHeight()); // right border
              g2d.fillRect(0, super.getHeight() - obw, super.getWidth(), obw); // bottom border
              alphaComp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f);
              g2d.setComposite(alphaComp);
              g2d.dispose();
    }

    I added the main method to your TransparentContainer class ...
         public static void main(String[] args) {
              JFrame f = new JFrame("test transparent container");
              f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              TransparentContainer tc = new TransparentContainer(Color.RED, true);
              JLabel label = new JLabel("Hello, World!");
              tc.add(label);
              f.getContentPane().add(tc);
              f.setSize(800, 600);
              f.setVisible(true);
         }...using the code you posted the label was not shown. I modified your paintComponent(Graphics g) method and I did this (see the areas in bold):
         /* protected void paintComponent(Graphics g)
          *   Paints the component with the borders and colors
          *   that were set up in above methods.
         protected void paintComponent(Graphics g)
              // Call super so components added to this panel are visible
              super.paintComponent(g);
              Graphics2D g2d = (Graphics2D) g;
              AlphaComposite alphaComp;
              g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
              g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
              g2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION,
                                            RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
              g2d.setColor(getBaseColor());
              /* Draw the main body of the component */
              if (getFullTransEnabled())
                   alphaComp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f);
                   g2d.setComposite(alphaComp);
              else
                   alphaComp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f);
                   g2d.setComposite(alphaComp);
              g2d.fillRect(cbw, cbw, super.getWidth() - 2 * cbw, super.getHeight() - 2 * cbw);
              alphaComp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f);
              g2d.setComposite(alphaComp);
              /* Draw the inner border: */
              g2d.setColor(getInnerColor());
              g2d.fillRect(obw, obw, ibw, super.getHeight() - obw * 2); // left border
              g2d.fillRect(obw, obw, super.getWidth() - obw, ibw); // top border
              g2d.fillRect(super.getWidth() - cbw, obw, ibw, super.getHeight() - obw * 2); // right border
              g2d.fillRect(obw, super.getHeight() - cbw, super.getWidth() - obw * 2, ibw); // bottom border
              /* Draw the outer border: */
              g2d.setColor(getOuterColor());
              g2d.fillRect(0, 0, obw, super.getHeight()); // left border
              g2d.fillRect(0, 0, super.getWidth() + obw, obw); // top border
              g2d.fillRect(super.getWidth() - obw, 0, obw, super.getHeight()); // right border
              g2d.fillRect(0, super.getHeight() - obw, super.getWidth(), obw); // bottom border
              alphaComp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f);
              g2d.setComposite(alphaComp);
              // Do not dispose the graphics
              // g2d.dispose();          
         }...seems to work fine now. Perhaps you should also add methods or additional constructors so the user can easily change the transparency level...and add some javadoc comments to your constructors ...at a first glance I did not know what fullTrans was
    public TransparentContainer(Color color, boolean fullTrans)good luck!!

  • Exporting text with a semi transparent background that can be changed in PS or PP?

    I'm creating a logo with a semi transparent background that I want to place on top of photos in Photoshop and videos in Premiere.
    1. I do not see a transparent option when exporting as a .tiff. Is transparent .png my only option from AI?
    2. I will need different amounts of transparency for the background depending on the image or video it is being placed on. Is there a way to export this and still have control in Photoshop or Premiere of the amount of transparency to apply towards the background?
    Thanks!

    1. So you are suggesting to just copy from AI and paste into PS?
    2. Since the logo is text and the background is a rectangular shape, I need to make sure that I can lower the opacity in PS or PP independently of the text. I will have to do a test later, I do not have the file on this computer.
    Thanks.

  • A simple dialog with semi-transparent border (MFC)

    Hi,
    I have to make a image dialog with semi-transparency border in MFC.
    I had web surfing all the day and found this solution in the codeproject.
    http://www.codeproject.com/Articles/42032/Perfect-Semi-transparent-Shaped-Dialogs-with-Stand
    But it creates two dialogs to make a semi-transparent dialog and the mechanism was so complex.
    And the release of the dialog object is difficult so that it may have memory leaks.
    I want a dialog (background is an image) with a semi-transparent border (corner - rounded).
    And I have to make it with only one dialog. If it's possible, how can I do it?
    Please help me, Thank you.

    The child control will become semi-transparency as your dialog.
    Do you want to show some child control on your dialog? If yes, you need the second dialog to host your child control. 
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • How can I capture a semi transparent window?

    Hello all
    I am trying to grab an image of a semi transparent window into a bitmap. I have tried using both CopyFromScreen and BitBlt using the window handle but in both cases all I get is the image from behind the window I want to catch, it's like the semi transparent
    window is completely invisible to both capture methods. Is there any way I can capture the window I want?
    Thanks
    Rich

    Here is an example. You can try it in a new form project with 1 Button and 1 PictureBox added to the form. As i said, it is just an example so, when it is run the form will be partialy transparent. Click the button and it will capture the whole screen including
    your transparent form. Then it will set the forms opacity back to 1.0 so you can see that the transparent form was captured in the image.
     You will need to set it up to be used in a practical way. This is just a quick test example.
    Imports System.Runtime.InteropServices
    Public Class Form1
    Private Const CAPTUREBLT As Integer = &H40000000
    Private Const SRCCOPY As Integer = &HCC0020
    <DllImport("gdi32.dll", EntryPoint:="BitBlt")> _
    Private Shared Function BitBlt(ByVal hdcDest As IntPtr, ByVal nXDest As Integer, ByVal nYDest As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hdcSrc As IntPtr, ByVal nXSrc As Integer, ByVal nYSrc As Integer, ByVal dwRop As UInteger) As <MarshalAs(UnmanagedType.Bool)> Boolean
    End Function
    <DllImport("user32.dll", EntryPoint:="GetDC")> Private Shared Function GetDC(ByVal hWnd As System.IntPtr) As System.IntPtr
    End Function
    <DllImport("user32.dll", EntryPoint:="ReleaseDC")> Private Shared Function ReleaseDC(ByVal hWnd As System.IntPtr, ByVal hDC As System.IntPtr) As Integer
    End Function
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    'set this form so it is partialy transparen. Just to show it was captured for this example
    Me.Opacity = 0.5
    PictureBox1.SizeMode = PictureBoxSizeMode.Zoom
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    'if the picturebox has an Image the Dispose it first
    If PictureBox1.Image IsNot Nothing Then PictureBox1.Image.Dispose()
    'define the rectangle area of the screen to capture (whole screen in this case)
    Dim CaptureRectangle As Rectangle = Screen.PrimaryScreen.Bounds
    'Assign the new image captured from the screen to the picturebox image
    PictureBox1.Image = CaptureScreenImage(CaptureRectangle)
    'just so you can see the image better set the form`s opacity back to 1.0
    Me.Opacity = 1.0
    End Sub
    Private Function CaptureScreenImage(ByVal rect As Rectangle) As Bitmap
    Dim scrnHdc As IntPtr = GetDC(IntPtr.Zero)
    Dim bmp As New Bitmap(rect.Width, rect.Height)
    Using grx As Graphics = Graphics.FromImage(bmp)
    Dim grxHdc As IntPtr = grx.GetHdc()
    BitBlt(grxHdc, 0, 0, rect.Width, rect.Height, scrnHdc, rect.X, rect.Y, SRCCOPY Or CAPTUREBLT)
    grx.ReleaseHdc(grxHdc)
    ReleaseDC(IntPtr.Zero, scrnHdc)
    End Using
    Return bmp
    End Function
    End Class
    If you say it can`t be done then i`ll try it

  • Having a JPanel 'float' semi-transparently over another component

    I am a programmer of a java project for our company.
    Managemnt decided that when a certain event happens, we need to 'semi-disable' a certain text area (in a JScrollPane), and have a floating message with a progress bar on top of this text area, but be semi-transparent, so you can still read the text under it.
    (Basically, they want it to look like a html page with a floating, semi-transparent DIV, because that is how another group mocked it up).
    I am trying to implement this, but am running into problems.
    Here is what I have, below I'll tell you what is wrong with it.
         * The purpose of this class is to have a scroll pane that can have it's contents partially covered by another panel
         * while still being able to read both the original panel and the new covering content, and still being able to scroll
         *the content under the covering panel.
        public class JOverlayScrollPane extends JScrollPane{
            private JPanel overlay = null;
            private Insets overlayInsets = null;
            private java.awt.AlphaComposite blend = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.50f);
            private ComponentAdapter cl = null;
            public void setOverlay(JPanel pan, Insets inset){
                overlay = pan;
                overlayInsets = inset;
                if(cl != null){
                    cl = new ComponentAdapter(){
                        public void componentResized(ComponentEvent e){
                            resizeOverlay();
                resizeOverlay();
                repaint();
            public void paint(Graphics g){
                super.paint(g);
                if(g instanceof Graphics2D && overlay !=null){
                    Graphics2D g2 = (Graphics2D)g;
    //                g2.setComposite(blend);
                    //overlay.paint(g2);
                    paintStuff(g,overlay);
            private void resizeOverlay(){
                if(overlay != null){
                    Dimension size = getSize();
                    int x = 0;
                    int y = 0;
                    if(overlayInsets !=null){
                        x = overlayInsets.left;
                        y = overlayInsets.top;
                        size.width = size.width - overlayInsets.left - overlayInsets.right;
                        size.height = size.height - overlayInsets.top - overlayInsets.bottom;
                    overlay.reshape(x,y, size.width, size.height);
                    overlay.doLayout();
                    overlay.validate();
            private void paintStuff(Graphics g,Component c){
                if(c != null){
                    c.paint(g);
                    if(c instanceof Container){
                        Container cont = (Container)c;
                        for(int i=0;i<cont.getComponentCount();i++){
                            Component cc = cont.getComponent(i);
                            paintStuff(g,cc);
        }//end of overlay scroll pane(I am having problems, so for now, the alpha blend is commented out).
    The first version didn't have the paintStuff() method (it just called paint). This just drew a big grey box, now of the sub-components of the passed in JPanel were drawing. I added the do layout and validate calls, without success.
    Then I added the paintStuff call, and all the subcomponents now, draw, but they all draw at 0,0.
    Questions
    1. Is the the correct approach to do this, or sould I be playing with the glass pane or some other approach?
    2. It seems that the overlay panel isn't being layed out / doens't paint it's children correctly. Is this because it isn't really part of the layout (i.e. it has no parent / is never added to a container) or am I just missing a step in 'faking' adding it to a layout?
    3. I'm sure I could just override paint and paint my own stuff (hand draw the text and a progress bar), but I would really like to put everything on one JPanel as what we want to display my be different in the future. I know that I manually ahve to call repaint on this scrollpane if one of the components on the overlay JPanel change in appearence (the progress bar especailly), and that they won't get events (I don't care about this as they are all non-interactive for now). Is this a viable approach, or is there a better way to do this?
    Thanks

    Wow, good answer.
    I never concidered using a root pane other than as it is used in JFrame.
    Very cool answer.
    Here is my origional code modifed with JN_'s idea, which cleaned up a repaint issue I was having.
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class TransparentPanel extends JFrame implements ActionListener
        ProgressPanel progressPanel;
        int progressCount;
        public TransparentPanel()
            super( "TransparentPanel Test");
            setDefaultCloseOperation( EXIT_ON_CLOSE );
            JPanel panel = new JPanel( new BorderLayout() );
            JTextArea area = new JTextArea( 20, 40 );
            JRootPane pane = new JRootPane();
            pane.setContentPane( new JScrollPane( area ) );
            panel.add( pane, BorderLayout.CENTER );
            //panel.add( new JScrollPane( area ), BorderLayout.CENTER );
            progressPanel = new ProgressPanel();
            pane.setGlassPane( progressPanel );
            JPanel buttonPanel = new JPanel( new FlowLayout());
            JButton button = new JButton( "Show" );
            button.setActionCommand("SHOW");
            button.addActionListener( this );
            buttonPanel.add( button );
            button = new JButton( "Hide" );
            button.setActionCommand("HIDE");
            button.addActionListener( this );
            buttonPanel.add( button );
            panel.add( buttonPanel, BorderLayout.SOUTH);
            setContentPane( panel );
            pack();
            setLocationRelativeTo( null );
            setVisible( true );
        public static void main( String[] args )
            try
                UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            catch( Exception e )
                e.printStackTrace();
            new TransparentPanel();
        public class ProgressPanel extends JPanel
            Color bg = new Color( 225, 221, 221, 100 );
            Color fg = new Color( 170, 234, 202, 100 );
            int progress;
                   setOpaque( false );
            public void setProgress( int n )
                 setVisible( n > 0 && n <= 100 );
                progress = n;
                repaint();
            public void paint( Graphics g )
                if( isVisible() )
                    Rectangle bounds = getBounds();
                    g.setColor( bg );
                    g.fillRect( bounds.x, bounds.y, bounds.width, bounds.height );
                    g.setColor(  fg );
                    int width = (int)(((double)progress/100)*bounds.width);
                    int height = (int) (((double)bounds.height)*.1);
                    int y = (int) (((double)bounds.height)*.4);
                    g.fillRect( bounds.x,y,width,height);
         * Invoked when an action occurs.
        public void actionPerformed(ActionEvent e)
            String cmd = e.getActionCommand();
            if(cmd.equals( "SHOW" ) )
                progressCount+= 10;
                if( progressCount > 100 )
                    progressCount = -1;
            else if( cmd.equals("HIDE" ) )
                progressCount = -1;
            progressPanel.setProgress( progressCount );
    }

  • Semi-transparent block, pure black and rich black problems

    Hi!
    I'm new to inDesign, and I'm currently designing a book cover, for which I need some special effects. I'll try to explain as best as I can.
    The background is rich black, on top of it I have a text in white (all over it). I applied a block with 80% opacity, in rich black color. I cut out some shapes in it. The point was to have the text in dark gray all over the book cover, but in white in the places where I have the shapes.
    Everything is working exactly like I want, but a friend of mine told me if I apply rich black over white, I'll get a kind of magenta gray, so I have to apply pure 100 K to avoid that and get the dark gray I want. I tried that, and of course, applying some pure black block on top of my rich black cover gives all the cover a "grayish black" look. How can I work around that? I tried setting my semi-transparent block to "darken", but it didn't change anything.
    I put the links to the pdf, I hope that's ok.
    That's the one with rich black: https://dl.dropboxusercontent.com/u/68049919/coverlayout_print_richblack.pdf
    and that's how it looks with the pure black: https://dl.dropboxusercontent.com/u/68049919/coverlayout_print.pdf
    Thanks a lot!

    There's no need to use transparency to create your background text color—just make a text frame filled with the rich black  then select the type and fill it with an 80% tint of the rich black swatch or any other gray mix. Like this:
    The text frame selected with its fill showing in the Colors panel:
    Here the text is selected and the Colors panel shows the text fill as an 80% tint of the rich black. There's no transparency in this case.
    In general it's bad practice to use transparency when you can get the same effect with color fills.
    Also if you are worried about the neutrality of the gray check with your printer on whether the gray text should be 4-color (your 80% tint) or straight black (95% black).
    The accuracy of the InDesign softproof depends on an accurate monitor profile and the assigned CMYK profile (Edit>Assign Profiles...). The assigned CMYK profile affects the preview including the profiled gray balance. For example the default SWOP CMYK profile previews your 4-color dark gray bluer and as a lighter value than US Sheetfed.
    The preview of your 85% rich black mix with different CMYK asignments

  • Scrolling semi-transparent panels

    I have a parent panel that paints a custom background. Within that panel, I embed another panel held by a JScrollPane. My intent is to have the custom background show through on the panel that is being scrolled.
    To accomplish this, I set both the scrollpane and the viewport to non-opaque and then I set the panel held by the scrollpane to non-opaque as well.
    When I run the program everything works fine and the panel can be scrolled and displayes the background image just as I want it.
    Next, I want to set the panel in the scrollpane to be semi-transparent. I set the panel to opaque and give it a semi-transparent background color(ie alpha value or .5). This gives me a see-through effect and when I run the program it initially looks good. However, when I scroll the panel, the refresh is not handled correctly. The problem appears to be that the paint method of the parent panel is not being called.
    I think the scrollbar code incorrectly assumes that since the embedded panel is defined as opaque that the parent panels do not need to be painted. However, this assumption is only valid if the background color of the embedded panel has an alpha value of 1.0
    Does anyone have a workaround for scrolling semi-transparent panels?

    On second thought, that's going to cause a stack overflow. You are going to need a flag to not call it. Something like so:public void paint(Graphics g) {
        if (someflag) {
            someflag=false;
            bgPanel.paint(bgPanel.getGraphics());
            someflag=true;
        // do my painting stuff ... super.paint(g); ???
    }Just a thought, I haven't tested it.

  • Semi-transparent lines?

    Hi,
    I’m trying to develop an extended cross hairs cursor. However the lines are rendered as semi transparent although the opacity is set to 1.0. Following code is for testing.
    What’s wrong? Can somebody help me?
    Thx!
    @Override
    public void start(Stage stage) throws Exception {
            StackPane root = new StackPane();
            root.setStyle("-fx-background-color:black;");
            Scene scene = new Scene(root, 300, 300);
            stage.setScene(scene);
            stage.setTitle("Cross Hairs Test");
            final Line hLine = new Line();
            hLine.setStroke(Color.WHITE);
            hLine.setStartX(0);
            hLine.setEndX(300);
            hLine.setOpacity(1.0);
            final Line vLine = new Line();
            vLine.setStroke(Color.WHITE);
            vLine.setStartY(0);
            vLine.setEndY(300);
            vLine.setOpacity(1.0);
            final double mouseX = 150;
            final double mouseY = 150;
            Rectangle rect = new Rectangle(300, 300);
            rect.setOpacity(0);
            rect.setCursor(Cursor.NONE);
            rect.setOnMouseMoved(new EventHandler<MouseEvent>() {
              @Override
              public void handle(MouseEvent me) {
                   hLine.setTranslateY(me.getY() - mouseY);
                   vLine.setTranslateX(me.getX() - mouseX);
            root.getChildren().addAll(hLine, vLine, rect);
            stage.show();
    }

    This is because the coordinates you specify are not referring to concrete pixels but can also be in between the pixels (in which case they will be anti-aliased). The center of the top left pixel is actually (0.5, 0.5). The top left of the top left pixel is (0, 0).
    See this javadoc: http://docs.oracle.com/javafx/2.0/api/index.html?overview-summary.html and read the part of the interaction with the coordinate system.
    Anyway, a quick fix is to add 0.5 to coordinates:
    @Override
    public void handle(MouseEvent me) {
      hLine.setTranslateY(me.getY() - mouseY + 0.5);
      vLine.setTranslateX(me.getX() - mouseX + 0.5);
    }

Maybe you are looking for

  • Red X and message

    Happy New Year! I am using PSE 10 on a Vista. In the editor, I save as a PSD File. During my work-flow, sometimes a box with a red X appears saying: Could not save because the file is already in use or was left open. What is this about? As you can im

  • [CS4 JS] Test for Preflight Errors

    Hi, Is it possible to test for preflight errors. If so, how? I want to allow export of an EPS only if an embedded preflight profile shows no errors. Thanks Simon Kemp

  • Can't update after installation CS5 to new hard disc, Help?

    I installed CS5 Design Premium to my new hard disc, installation was successful. However, the update failed. The feedback of failure: "There was an error downloading this update. Please quit and try again later." When I press customer care of the fee

  • Set as default

    I want to use Firefox as my browser. How do I set it as the default browser instead of Safari?

  • Hide and show button

    hi , i want when i click on show button then the show button hide and the hide button show , and vice versa , how i will do that through java script or any method plz help