We help IT Professionals succeed at work.

Check out our new AWS podcast with Certified Expert, Phil Phillips! Listen to "How to Execute a Seamless AWS Migration" on EE or on your favorite podcast platform. Listen Now

x

How can I make the picture or text I am dragging on top of a larger picture semi transparent

Dov_B
Dov_B asked
on
Medium Priority
239 Views
Last Modified: 2012-05-07
In the last question you showed me how to drag 1 image on top of a larger image is it possible to make the draggable image semi transparent so you can see the bottom image through it some what?
Comment
Watch Question

Use
filter: alpha(opacity = 100); - for Internet Explorer
    -moz-opacity: 1.0; - for Firefox
Sorry, I thought the question was posted in asp.net zone!
Mike TomlinsonHigh School Computer Science, Computer Applications, Digital Design, and Mathematics Teacher
CERTIFIED EXPERT
Top Expert 2009

Commented:
The crux of the question:

    "...is it possible to make the draggable image semi transparent so you can see the bottom image through it some what?"

My answer:

   Yes...and No.

Transparency in .Net is a funny beast.   =\

(a) If you want to keep each overlaid image in its own container (picturebox) then you have to place it into its OWN window (borderless form) and literally "float" the image OVER the original form.  This allows you to set the Opacity() property of the floating window to less than 1 thus making it semi-transparent.  So you would create the new form, set the image and opacity, and then calculate the necessary location to make it appear in the correct position relative to the original form.  This obviously brings up a slew of other issues that you must now deal with such as "syncing" the movement of all the overlay windows with the main form when it is moved/resized by the user.  The overlay form must be limited to move "within" the confines of the original image as well.  You must also setup communication between the forms so that you can make things happen in the main form in response to the overlay forms.  The advantage to this approach is that it is relatively easy to MOVE the smaller image around by simply moving the overlay form itself.

(b) Another option is to build ONE composite image consisting of the original image and then the smaller images drawn on top.  With Graphics.DrawImage() it is possible to specify an alpha channel which would blend the smaller image on top of the underlying image.  The disadvantage here is that it now becomes difficult to seamlessly move the image around in response to user interaction since now the entire image has to be REDRAWN everytime you want to move just one image.  This can be a processor intensive operation and may cause some "sluggishness" if you wanted to let a user drag an image around in real time.  This could be alleviated by not dragging the actual image around but instead making the user drag around just a rectangle border (think rubberbanding!).

Which approach do you want to explore?...

Author

Commented:
gee...I am not sure
I guess either option a or
option b but moving just the rectangle bordere
either way thank you
Mike TomlinsonHigh School Computer Science, Computer Applications, Digital Design, and Mathematics Teacher
CERTIFIED EXPERT
Top Expert 2009

Commented:
Basically there isn't an "easy" solution here and integrating either concept into an existing project will probably require a lot of code changes.

So let's take baby steps shall we?  I'll post up a simplified example showing how to draw a smaller image with semi-transparency on top of a larger image and then we'll go from there...

Author

Commented:
thank you
High School Computer Science, Computer Applications, Digital Design, and Mathematics Teacher
CERTIFIED EXPERT
Top Expert 2009
Commented:
Unlock this solution and get a sample of our free trial.
(No credit card required)
UNLOCK SOLUTION

Author

Commented:
very cool
thanks
I will be gone for about an hour

Author

Commented:
Sorry away so long
I am asking a related question if you get a chance to look at it
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a sample view!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.