Fade image to grayscale in silverlight - silverlight

I'm using expression blend and can't figure out how to go about fading a color image to grayscale. Can I do it in the xaml or do I need to handle this in my C#?

Couple ways to do it.
1) pre-compute gray-scale image; place it on top of the color image; animate opacity of the gray scale image from 0 to 1 to get the desired effect.
2) use pixel shader. wpf shader library might have one

Related

How do i create xaml (silverlight) animation like attacted image?

I want to create animation like this image, i'm wondering how do i get start for this ? in silverlight xaml
this bar will increased or decreased in animation
thanks for any help
I would create image overlay to create grid effect and would draw solid rectangles under the image. Animate rectangles using standard XAML animations.
Or even better: animate black overlay rectangles covering top of bars.
Sent from windows phone.

silverlight image control brightness and contrast

Does anyone know how to apply brightness and contrast control to an Image in silverlight 5? Maybe using UIElement.Effect? I don't need to modify/save the image, just change how it is displayed.
Use a WriteableBitmap as source for your image and then apply a brightness/contrast formula on every pixel of the WriteableBitmap.
You need to call Invalidate() on your bitmap instance after you have changed the pixels.
I ended up using a Custom Pixel Shader. Shazzam has a contrast adjust custom pixel shader in it's pre-installed samples. The beauty of this is that it works in both WPF and silverlight.

WPF Image Overlay

I have an <Image /> used in a ControlTemplate to show a 24 bit PNG. Ontop of this, I'd like to apply a semi-transparent gray layer to make it appear half disabled. The problem I'm having is that if I just apply a gray layer, the transparent parts of the image just change to gray, instead of staying transparent and only applying to the coloured parts.
You could set the Opacity of the Image instead.

How can I get pixel ARGB information from an image in Silverlight?

Is there any way to get pixel RGB in silverlight? I have a PNG image which I'm going to find RGB and alpha of some pixels (I'm going to display ARGB of mouse position on image)
Seems like Bitmap.GetPixel (MSDN) would be a good place to start

Morphing from an image to a shape in Silverlight 3

I have a requirement to morph from an image (png) to a shape (polygon) in Silverlight 3 as an effect, but of course there is no built in transition or method to do this.
At the moment the best I have is fade one out and the other in, but can anyone suggest a decent alternative that may work or look better?
Regards
Moo
In Blend:
Create a rectangle. Set stroke to No Brush and Fill to Tile Brush.
For the ImageBrush of the Tile Brush, select your image.
In the object browser, select the rectangle, right click > Path > Convert to Path.
Use the pen tool to add some points to the path.
Add a storyboard.
Add a keyframe at 1 second. Blend will go into record mode
Use the direct selection tool to move the points into the polygon shape you want. Test out your animation.
At this point, the image morphs into a shape, but the image is still there. If you need to remove the image as well as morph it:
In your storyboard, at the keyframe at 1 second, change the opacity to 0.
Create a copy of the rectangle, but make sure fill is set to No Brush and Stroke is set to a color and width. Set the opacity to 0.
Add points, and mimic the animation you just set up for the image's rectangle.
Add a keyframe at 1 second for this element. In record mode, change the opacity to 100%.
The end result will be both paths morphing, the one with the image fading out while the one with no fill fading in.
I'm not a silverlight programmer, and don't know the details of what you want to do, so this is just a shot in the dark, but... if the shape you want the image to morph to is always going to have the same initial visual appearance (or some limited set of appearances) you might try morphing from the original image to an image of that shape, and then swapping the image that's the morph target for the geometry once you're done the morph. Course whether that would work or not is very dependent on the details of what you're doing. Sorry if you've already considered that and ruled it out.
You could possibly morph the image brush to the path of the shape by using an appropriate projection matrix. Or render a shape using the image brush and then morph that shape to the target shape, i.e. go from a rectangle to the target shape but using the image brush as the shape background. You may need to still warp the image brush somehow though.
An example of rendering a warped image is here in Charles Petzold's blog.

Resources