private void Complete(bool forceComplete) { // If we're forcing completion, make sure the scope batch is cleaned up if (forceComplete && (_scopeBatch != null)) { CleanupScopeBatch(); } // If we've completed the transition or we're forcing completion, cleanup if (forceComplete || (_imageLoaded && _animationCompleted)) { _sprite = null; // Clear the sprite from the UIElement ElementCompositionPreview.SetElementChildVisual(_parent, null); // Clean up the image and show it if (_targetImage != null) { _targetImage.ImageOpened -= CompositionImage_ImageOpened; _targetImage.Opacity = 1f; _targetImage = null; } } }
private void LoadImage(CompositionSurfaceBrush brush, Uri uri) { // Create an image source to load CompositionImage imageSource = _imageFactory.CreateImageFromUri(uri); brush.Surface = imageSource.Surface; }
private async void ApplyEffect(CompositionImage image) { Task <CompositionDrawingSurface> task = null; // If we've requested a load time effect input, kick it off now if (_currentTechnique.LoadTimeEffectHandler != null) { task = SurfaceLoader.LoadFromUri(image.Source, Size.Empty, _currentTechnique.LoadTimeEffectHandler); } // Create the new brush, set the inputs and set it on the image CompositionEffectBrush brush = _currentTechnique.CreateBrush(); brush.SetSourceParameter("ImageSource", image.SurfaceBrush); image.Brush = brush; // If we've got an active task, wait for it to finish if (task != null) { CompositionDrawingSurface effectSurface = await task; // Set the effect surface as input brush.SetSourceParameter("EffectSource", _compositor.CreateSurfaceBrush(effectSurface)); } }
private Visual MakeImageVisualforFollower(Uri imageUri, Vector2 size) { //Load profile image into a CompositionImage CompositionImage profileImage = _compositor.DefaultGraphicsDevice.CreateImageFromUri(imageUri); CompositionImage maskImage = _compositor.DefaultGraphicsDevice.CreateImageFromUri(new Uri("ms-appx:///Assets/CircularAlphaMaskInflated.png")); CompositeEffect maskComposite = new Microsoft.Graphics.Canvas.Effects.CompositeEffect(); maskComposite.Sources.Add(new CompositionEffectSourceParameter("image")); maskComposite.Sources.Add(new CompositionEffectSourceParameter("maskImage")); maskComposite.Mode = Microsoft.Graphics.Canvas.CanvasComposite.DestinationIn; maskComposite.Name = "Mask"; CompositionEffectFactory effectFactory = _compositor.CreateEffectFactory(maskComposite); CompositionEffect maskEffect = effectFactory.CreateEffect(); maskEffect.SetSourceParameter("image", profileImage); maskEffect.SetSourceParameter("maskImage", maskImage); EffectVisual profileImageVisual = _compositor.CreateEffectVisual(); profileImageVisual.Effect = maskEffect; profileImageVisual.Size = size; return(profileImageVisual); }
private void SamplePage_Loaded(object sender, Windows.UI.Xaml.RoutedEventArgs e) { // Get backing visual from shadow container and interop compositor _shadowContainer = ElementCompositionPreview.GetElementVisual(ShadowContainer); _compositor = _shadowContainer.Compositor; // Get CompositionImage, its sprite visual _image = VisualTreeHelperExtensions.GetFirstDescendantOfType <CompositionImage>(ShadowContainer); _imageVisual = _image.SpriteVisual; // Load mask asset onto surface using helpers in SamplesCommon _imageLoader = ImageLoaderFactory.CreateImageLoader(_compositor); _imageMaskSurface = _imageLoader.CreateCircleSurface(200, Colors.White); // Create surface brush for mask CompositionSurfaceBrush mask = _compositor.CreateSurfaceBrush(); mask.Surface = _imageMaskSurface.Surface; // Get surface brush from composition image CompositionSurfaceBrush source = _image.SurfaceBrush as CompositionSurfaceBrush; // Create mask brush for toggle mask functionality _maskBrush = _compositor.CreateMaskBrush(); _maskBrush.Mask = mask; _maskBrush.Source = source; // Initialize toggle mask _isMaskEnabled = false; }
private void ImageList_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (ImageList.SelectedItem != null) { ListViewItem item = (ListViewItem)ImageList.ContainerFromItem(ImageList.SelectedItem); Uri imageSource = _imageUriGetterFunc(item.Content, true); if (_crossFadeBatch == null) { // Save the previous image for a cross-fade _previousSurfaceBrush.Surface = BackgroundImage.SurfaceBrush.Surface; _previousSurfaceBrush.CenterPoint = BackgroundImage.SurfaceBrush.CenterPoint; _previousSurfaceBrush.Stretch = BackgroundImage.SurfaceBrush.Stretch; // Load the new background image BackgroundImage.ImageOpened += BackgroundImage_ImageChanged; } // Update the images BackgroundImage.Source = imageSource; PrimaryImage.Source = imageSource; if (!_transition.Completed) { _transition.Cancel(); } // Kick off a connected animation to animate from it's current position to it's new location CompositionImage image = VisualTreeHelperExtensions.GetFirstDescendantOfType <CompositionImage>(item); _transition.Initialize(this, image, null); _transition.Start(this, PrimaryImage, null, null); } }
private void AddImageVisualForFollower(Uri imageUri, Vector3 offset, Vector2 size) { //Load profile image into a CompositionImage CompositionImage profileImage = _compositor.DefaultGraphicsDevice.CreateImageFromUri(imageUri); CompositionImage maskImage = _compositor.DefaultGraphicsDevice.CreateImageFromUri(new Uri("ms-appx:///Assets/CircularAlphaMaskInflated.png")); //Configure effect graph CompositeEffect maskCompositEffectDescription = new Microsoft.Graphics.Canvas.Effects.CompositeEffect(); maskCompositEffectDescription.Sources.Add(new CompositionEffectSourceParameter("image")); maskCompositEffectDescription.Sources.Add(new CompositionEffectSourceParameter("maskImage")); maskCompositEffectDescription.Mode = Microsoft.Graphics.Canvas.CanvasComposite.DestinationIn; maskCompositEffectDescription.Name = "Mask"; //Create an effect factory for the graph CompositionEffectFactory effectFactory = _compositor.CreateEffectFactory(maskCompositEffectDescription); //Create an instance of the effect and set source parameters CompositionEffect maskEffect = effectFactory.CreateEffect(); maskEffect.SetSourceParameter("image", profileImage); maskEffect.SetSourceParameter("maskImage", maskImage); //Add main profile picture visual EffectVisual profileImageVisual = _compositor.CreateEffectVisual(); profileImageVisual.Effect = maskEffect; profileImageVisual.Size = size; profileImageVisual.Offset = offset; //Add ImageVisual to tree _rootVisual.Children.InsertAtTop(profileImageVisual); }
private void LoadImage(CompositionSurfaceBrush brush) { // Create an image source to load CompositionImage imageSource = _imageFactory.CreateImageFromUri(new Uri("ms-appx:///Assets/cat.png")); brush.Surface = imageSource.Surface; }
private void ThumbnailList_Click(object sender, ItemClickEventArgs e) { GridView gridView = (GridView)sender; GridViewItem item = (GridViewItem)gridView.ContainerFromItem(e.ClickedItem); CompositionImage image = VisualTreeHelperExtensions.GetFirstDescendantOfType <CompositionImage>(item); // We are about to transition to a new page. Cancel any outstanding transitions. if (_currentTransition != null) { if (!_currentTransition.Completed) { _currentTransition.Cancel(); } _currentTransition = null; } DetailsInfo info; info.thumbanil = (Thumbnail)e.ClickedItem; // Setup the new transition and trigger the navigation ConnectedTransition transition = new ConnectedTransition(); transition.Initialize(Frame, image, info); Frame.Navigate(typeof(CustomConnectedAnimationDetail), transition); }
public void Initialize(UIElement host, CompositionImage sourceElement, object payload) { _host = host; _parent = host; _payload = payload; // Make a copy of the sourceElement's sprite so we can hand it off to the next page SpriteVisual sourceSprite = sourceElement.SpriteVisual; Compositor compositor = sourceSprite.Compositor; _sprite = compositor.CreateSpriteVisual(); _sprite.Size = sourceSprite.Size; _sprite.Brush = sourceElement.SurfaceBrush; // We're going to use the backing surface, make sure it doesn't get released sourceElement.SharedSurface = true; // Determine the offset from the host to the source element used in the transition GeneralTransform coordinate = sourceElement.TransformToVisual(_parent); Point position = coordinate.TransformPoint(new Point(0, 0)); // Set the sprite to that offset relative to the host _sprite.Offset = new Vector3((float)position.X, (float)position.Y, 0); // Set the sprite as the content under the host ElementCompositionPreview.SetElementChildVisual(_parent, _sprite); }
private void ListView_ContainerContentChanging(ListViewBase sender, ContainerContentChangingEventArgs args) { CompositionImage image = args.ItemContainer.ContentTemplateRoot.GetFirstDescendantOfType <CompositionImage>(); Uri imageSource = _imageUriGetterFunc(args.Item, false); // Set the URI source, and size to the large target image image.Source = imageSource; }
private void ListView_ContainerContentChanging(ListViewBase sender, ContainerContentChangingEventArgs args) { CompositionImage image = args.ItemContainer.ContentTemplateRoot.GetFirstDescendantOfType <CompositionImage>(); Thumbnail thumbnail = args.Item as Thumbnail; // Update the image URI image.Source = new Uri(thumbnail.ImageUrl); }
public override void AddToCache(string cacheKey, CompositionImage compositionImage, Dependency[] dependencies) { InProcCacheEntry cacheEntry = new InProcCacheEntry { CompositionImage = compositionImage, Dependencies = dependencies }; Cache.Insert(cacheKey, cacheEntry); }
private void UpdateEffectBrush() { if (ThumbnailList.ItemsPanelRoot != null) { foreach (ListViewItem item in ThumbnailList.ItemsPanelRoot.Children) { CompositionImage image = item.ContentTemplateRoot.GetFirstDescendantOfType <CompositionImage>(); SetImageEffect(image); } } }
private void ListView_ContainerContentChanging(ListViewBase sender, ContainerContentChangingEventArgs args) { CompositionImage image = args.ItemContainer.ContentTemplateRoot.GetFirstDescendantOfType <CompositionImage>(); Thumbnail thumbnail = args.Item as Thumbnail; Uri uri = new Uri(thumbnail.ImageUrl); // Setup the brush for this image SetImageEffect(image); // Update the image URI image.Source = uri; }
public override void OnPointerEnter(Vector2 pointerPosition, CompositionImage image) { _propertySet = _compositor.CreatePropertySet(); _propertySet.InsertScalar("Scale", 1.25f); _propertySet.InsertScalar("Rotation", 0f); _propertySet.InsertVector2("Translate", new Vector2(0f, 0f)); _propertySet.InsertVector2("CenterPointOffset", new Vector2((float)_lightMap.Size.Width / 2f, 0f)); _transformExpression.SetReferenceParameter("props", _propertySet); image.Brush.StartAnimation("LightMapTransform.TransformMatrix", _transformExpression); _propertySet.StartAnimation("Rotation", _enterAnimation); }
private void ThumbnailList_Loaded(object sender, RoutedEventArgs args) { if (_currentTransition != null) { DetailsInfo info = (DetailsInfo)_currentTransition.Payload; GridViewItem item = (GridViewItem)ThumbnailList.ContainerFromItem(info.thumbanil); CompositionImage image = VisualTreeHelperExtensions.GetFirstDescendantOfType <CompositionImage>(item); ScrollViewer scrollViewer = VisualTreeHelperExtensions.GetFirstDescendantOfType <ScrollViewer>(ThumbnailList); // Kick off the transition now that the page has loaded _currentTransition.Start(MyGrid, image, scrollViewer, ThumbnailList); } }
private void AddImageVisualForFollower(Uri imageUri, Vector3 offset, Vector2 size) { //Load profile image into a CompositionImage CompositionImage profileImage = _compositor.DefaultGraphicsDevice.CreateImageFromUri(imageUri); ImageVisual profileImageVisual = _compositor.CreateImageVisual(); profileImageVisual.Image = profileImage; profileImageVisual.Size = size; profileImageVisual.Offset = offset; _rootVisual.Children.InsertAtTop(profileImageVisual); }
private void LoadImage(Uri uri) { // Create CompositionSurfaceBrush var surfaceBrush = _compositor.CreateSurfaceBrush(); // Create an image source to load CompositionImage imageSource = _imageFactory.CreateImageFromUri(uri); surfaceBrush.Surface = imageSource.Surface; _brush.SetSourceParameter("source", surfaceBrush); RotateHue(0); }
public override void OnPointerEnter(Vector2 pointerPosition, CompositionImage image) { _propertySet = _compositor.CreatePropertySet(); _propertySet.InsertScalar("Scale", 1f); Vector2 positionNormalized = new Vector2((pointerPosition.X / (float)image.Width) - .5f, (pointerPosition.Y / (float)image.Height) - .5f); _propertySet.InsertVector2("Translate", positionNormalized); _propertySet.InsertVector2("CenterPointOffset", new Vector2(128, 128)); _transformExpression.SetReferenceParameter("props", _propertySet); image.Brush.StartAnimation("LightMapTransform.TransformMatrix", _transformExpression); _propertySet.StartAnimation("Scale", _enterAnimation); }
protected void SaveImageToDiskCache(CompositionImage compositionImage) { if (!compositionImage.Properties.IsImagePresent) return; HttpContext httpContext = HttpContext.Current; string filePath = httpContext.Server.MapPath(GetDiskCacheFilePath(httpContext, compositionImage.Properties.CacheProviderKey, compositionImage.Properties.FileExtension)); using (FileStream fileStream = File.OpenWrite(filePath)) { BitmapEncoder encoder = compositionImage.Properties.GetEncoder(); encoder.Frames.Add(BitmapFrame.Create(compositionImage.Image)); encoder.Save(fileStream); } }
private void AddImageVisualForFollower(Uri imageUri, Vector3 offset, Vector2 size) { //Load profile image into a CompositionImage CompositionImage profilePic = _compositor.DefaultGraphicsDevice.CreateImageFromUri(imageUri); //Add main profile picture visual ImageVisual profilePicVisual = _compositor.CreateImageVisual(); profilePicVisual.Image = profilePic; profilePicVisual.Stretch = CompositionStretch.UniformToFill; profilePicVisual.Size = size; profilePicVisual.Offset = offset; //Add ImageVisual to tree _rootVisual.Children.InsertAtTop(profilePicVisual); }
private void ThumbnailList_ItemClick(object sender, ItemClickEventArgs e) { ListViewItem listItem = (ListViewItem)ThumbnailList.ContainerFromItem(e.ClickedItem); CompositionImage image = listItem.ContentTemplateRoot.GetFirstDescendantOfType <CompositionImage>(); // Flip each thumbnail as it's clicked SpriteVisual sprite = image.SpriteVisual; sprite.RotationAxis = new Vector3(1, 0, 0); sprite.CenterPoint = new Vector3(sprite.Size.X / 2, sprite.Size.Y / 2, 0); ScalarKeyFrameAnimation rotateAnimation = _compositor.CreateScalarKeyFrameAnimation(); rotateAnimation.InsertKeyFrame(0, 0); rotateAnimation.InsertKeyFrame(1, 360); rotateAnimation.Duration = TimeSpan.FromSeconds(2); sprite.StartAnimation("RotationAngleInDegrees", rotateAnimation); }
private void SamplePage_Loaded(object sender, Windows.UI.Xaml.RoutedEventArgs e) { // Get backing visual from shadow container and interop compositor _shadowContainer = ElementCompositionPreview.GetElementVisual(ShadowContainer); _compositor = _shadowContainer.Compositor; // Get CompositionImage, its sprite visual _image = VisualTreeHelperExtensions.GetFirstDescendantOfType <CompositionImage>(ShadowContainer); _imageVisual = _image.SpriteVisual; // Add drop shadow to image visual _shadow = _compositor.CreateDropShadow(); _imageVisual.Shadow = _shadow; // Initialize sliders to shadow defaults - with the exception of offset BlurRadiusSlider.Value = _shadow.BlurRadius; //defaults to 9.0f OffsetXSlider.Value = _shadow.Offset.X; //defaults to 0 OffsetYSlider.Value = _shadow.Offset.Y; //defaults to 0 RedSlider.Value = _shadow.Color.R; //defaults to 0 (black.R) GreenSlider.Value = _shadow.Color.G; //defaults to 0 (black.G) BlueSlider.Value = _shadow.Color.B; //defaults to 0 (black.B) // Load mask asset onto surface using helpers in SamplesCommon _imageLoader = ImageLoaderFactory.CreateImageLoader(_compositor); _imageMaskSurface = _imageLoader.CreateManagedSurfaceFromUri(new Uri("ms-appx:///Assets/CircleMask.png")); // Create surface brush for mask CompositionSurfaceBrush mask = _compositor.CreateSurfaceBrush(); mask.Surface = _imageMaskSurface.Surface; // Get surface brush from composition image CompositionSurfaceBrush source = _image.SurfaceBrush as CompositionSurfaceBrush; // Create mask brush for toggle mask functionality _maskBrush = _compositor.CreateMaskBrush(); _maskBrush.Mask = mask; _maskBrush.Source = source; // Initialize toggle mask and animation to false _isMaskEnabled = false; _isAnimationEnabled = false; }
private void SetImageEffect(CompositionImage image) { // Create the effect brush and bind the normal map CompositionEffectBrush brush = _effectFactory.CreateBrush(); ComboBoxItem item = LightingSelection.SelectedValue as ComboBoxItem; switch ((LightingTypes)item.Tag) { case LightingTypes.SpotLightSpecular: case LightingTypes.PointSpecular: brush.StartAnimation("Light1.LightPosition", _lightPositionAnimation); brush.StartAnimation("Light1.LightColor", _lightColorAnimation); brush.StartAnimation("Light2.LightPosition", _lightPositionAnimation); brush.StartAnimation("Light2.LightColor", _lightColorAnimation); brush.SetSourceParameter("NormalMap", _circleNormalsBrush); break; case LightingTypes.DistantDiffuse: brush.SetSourceParameter("NormalMap", _circleNormalsBrush); brush.StartAnimation("Light1.Azimuth", _lightAzimuthAnimation); brush.StartAnimation("Light1.Elevation", _lightElevationAnimation); break; case LightingTypes.DistantSpecular: brush.SetSourceParameter("NormalMap", _circleNormalsBrush); brush.StartAnimation("Light1.Azimuth", _lightAzimuthAnimation); brush.StartAnimation("Light1.Elevation", _lightElevationAnimation); brush.StartAnimation("Light2.Azimuth", _lightAzimuthAnimation); brush.StartAnimation("Light2.Elevation", _lightElevationAnimation); break; default: brush.StartAnimation("Light1.LightPosition", _lightPositionAnimation); brush.StartAnimation("Light1.LightColor", _lightColorAnimation); brush.SetSourceParameter("NormalMap", _flatNormalsBrush); break; } // Update the CompositionImage to use the custom effect brush image.Brush = brush; }
public override void AddToCache(string cacheKey, CompositionImage compositionImage, Dependency[] dependencies) { EnsureDocument(); // Save image to disk. SaveImageToDiskCache(compositionImage); lock (_doc) { // Double-check that item hasn't been added to cache since we checked. if (ExistsInCache(cacheKey)) return; var itemElement = new XElement("item", new XAttribute("id", compositionImage.Properties.CacheProviderKey), new XAttribute("uniqueKey", cacheKey), new XAttribute("isImagePresent", compositionImage.Properties.IsImagePresent), new XAttribute("format", compositionImage.Properties.Format), new XAttribute("colourDepth", compositionImage.Properties.ColourDepth)); if (compositionImage.Properties.Width != null) itemElement.Add(new XAttribute("width", compositionImage.Properties.Width.Value)); if (compositionImage.Properties.Height != null) itemElement.Add(new XAttribute("height", compositionImage.Properties.Height.Value)); if (compositionImage.Properties.JpegCompressionLevel != null) itemElement.Add(new XAttribute("jpegCompressionLevel", compositionImage.Properties.JpegCompressionLevel.Value)); XElement dependenciesElement = new XElement("dependencies"); itemElement.Add(dependenciesElement); foreach (var dependency in dependencies) dependenciesElement.Add(new XElement("dependency", new XAttribute("text1", dependency.Text1), new XAttribute("text2", dependency.Text2), new XAttribute("text3", dependency.Text3), new XAttribute("text4", dependency.Text4))); _doc.Root.Add(itemElement); _doc.Save(_docPath); } }
public void Dispose() { imageFactory = null; imageSource = null; if (effect != null) { effect.Dispose(); effect = null; } if (surfaceBrush != null) { surfaceBrush.Surface = null; surfaceBrush.Dispose(); surfaceBrush = null; } //if (visual != null) //{ // if(spriteVisual!=null) visual.Children.Remove(spriteVisual); // visual.Dispose(); // visual = null; //} if (effectBrush != null) { effectBrush.SetSourceParameter(EffectSource, null); effectBrush.Dispose(); effectBrush = null; } if (spriteVisual != null) { spriteVisual.Brush = null; spriteVisual.Dispose(); spriteVisual = null; } }
private void SetupCompositionImage(CompositionImage image, News.Helpers.Composition.CompositionShadow shadow) { var imageVisual = image.SpriteVisual; var compositor = imageVisual.Compositor; var imageLoader = ImageLoaderFactory.CreateImageLoader(compositor); var imageMaskSurface = imageLoader.CreateManagedSurfaceFromUri(new Uri("ms-appx:///Helpers/Composition/CircleMask.png")); var mask = compositor.CreateSurfaceBrush(); mask.Surface = imageMaskSurface.Surface; var source = image.SurfaceBrush as CompositionSurfaceBrush; var maskBrush = compositor.CreateMaskBrush(); maskBrush.Mask = mask; maskBrush.Source = source; image.Brush = maskBrush; shadow.Mask = maskBrush.Mask; }
private async void ApplyEffect(CompositionImage image) { ManagedSurface effectSurface = null; // If we've requested a load time effect input, kick it off now if (_currentTechnique.LoadTimeEffectHandler != null) { effectSurface = await ImageLoader.Instance.LoadFromUriAsync(image.Source, Size.Empty, _currentTechnique.LoadTimeEffectHandler); } // Create the new brush, set the inputs and set it on the image CompositionEffectBrush brush = _currentTechnique.CreateBrush(); brush.SetSourceParameter("ImageSource", image.SurfaceBrush); image.Brush = brush; // Set the effect surface as input if (effectSurface != null) { brush.SetSourceParameter("EffectSource", effectSurface.Brush); } }
/// <summary> /// Bind Compositon Images to the list which need to continue to the next page on navigation. /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private void FruitsList_ContainerContentChanging(ListViewBase sender, ContainerContentChangingEventArgs args) { //Get the clicked Item var item = args.Item as Item; //Get hold of the UIElement to bind items. var contentPanel = args.ItemContainer.ContentTemplateRoot as StackPanel; //Create Composition Image from data source var parentRectangle = _compositor.CreateContainerVisual(); var rectangleColor = _compositor.CreateSpriteVisual(); rectangleColor.Size = new System.Numerics.Vector2(40, 40); //Use ImageFactory to load image from URI. try { CompositionImageFactory imageFactory = CompositionImageFactory.CreateCompositionImageFactory(_compositor); CompositionImageOptions options = new CompositionImageOptions() { DecodeWidth = 160, DecodeHeight = 160, }; CompositionImage image = imageFactory.CreateImageFromUri(item.imageUri, options); rectangleColor.Brush = _compositor.CreateSurfaceBrush(image.Surface); } catch { rectangleColor.Brush = _compositor.CreateColorBrush(Windows.UI.Colors.Red); } //Bind Composition Image to UIElement - Rectangle in this case. Rectangle rectImage = contentPanel.FindName("imageItem") as Rectangle; parentRectangle.Children.InsertAtTop(rectangleColor); item.imageContainerVisual = parentRectangle; item.rectImage = rectImage; ElementCompositionPreview.SetElementChildVisual(rectImage, parentRectangle); }
private async Task <bool> CreateSurface() { surfaceBrush = compositor.CreateSurfaceBrush(); //var uriSource = UriManager.GetFilUriFromString(Source); //imageSource = imageFactory.CreateImageFromUri(uriSource); try { var file = await Windows.Storage.StorageFile.GetFileFromPathAsync(Source); if (file != null) { imageSource = imageFactory.CreateImageFromFile(file); surfaceBrush.Surface = imageSource.Surface; surfaceBrush.Stretch = CompositionStretch.UniformToFill; } } catch (Exception ex) { return(false); } return(true); }
public override void AddToCache(string cacheKey, CompositionImage compositionImage, Dependency[] dependencies) { // Save image to disk. SaveImageToDiskCache(compositionImage); UseConnection(conn => { using (DbCommand comm = conn.CreateCommand()) { comm.CommandText = "INSERT INTO Cache (ID, UniqueKey, IsImagePresent, Width, Height, Format, ColorDepth, JpegCompressionLevel) VALUES (@ID, @UniqueKey, @IsImagePresent, @Width, @Height, @Format, @ColorDepth, @JpegCompressionLevel)"; AddCommandParameter(comm, "ID", DbType.String, compositionImage.Properties.CacheProviderKey); AddCommandParameter(comm, "UniqueKey", DbType.String, cacheKey); AddCommandParameter(comm, "IsImagePresent", DbType.Boolean, compositionImage.Properties.IsImagePresent); AddCommandParameter(comm, "Width", DbType.Int32, compositionImage.Properties.Width); AddCommandParameter(comm, "Height", DbType.Int32, compositionImage.Properties.Height); AddCommandParameter(comm, "Format", DbType.String, compositionImage.Properties.Format); AddCommandParameter(comm, "ColorDepth", DbType.Int32, compositionImage.Properties.ColourDepth); AddCommandParameter(comm, "JpegCompressionLevel", DbType.Int32, compositionImage.Properties.JpegCompressionLevel); comm.ExecuteNonQuery(); foreach (Dependency dependency in dependencies) { comm.CommandText = "INSERT INTO CacheDependencies (CacheID, Text1, Text2, Text3, Text4) VALUES (@CacheID, @Text1, @Text2, @Text3, @Text4);"; comm.Parameters.Clear(); AddCommandParameter(comm, "CacheID", DbType.String, compositionImage.Properties.CacheProviderKey); AddCommandParameter(comm, "Text1", DbType.String, dependency.Text1); AddCommandParameter(comm, "Text2", DbType.String, dependency.Text2); AddCommandParameter(comm, "Text3", DbType.String, dependency.Text3); AddCommandParameter(comm, "Text4", DbType.String, dependency.Text4); comm.ExecuteNonQuery(); } } }); }
private void SetImageEffect(CompositionImage image) { // Create the effect brush and bind the normal map CompositionEffectBrush brush = _effectFactory.CreateBrush(); ComboBoxItem item = LightingSelection.SelectedValue as ComboBoxItem; switch ((LightingTypes)item.Tag) { case LightingTypes.SpotLightSpecular: case LightingTypes.PointSpecular: case LightingTypes.DistantDiffuse: case LightingTypes.DistantSpecular: brush.SetSourceParameter("NormalMap", _sphereNormalMap == null ? null : _sphereNormalMap.Brush); break; default: brush.SetSourceParameter("NormalMap", _edgeNormalMap == null ? null : _edgeNormalMap.Brush); break; } // Update the CompositionImage to use the custom effect brush image.Brush = brush; }
private void CreateSurface() { surfaceBrush = compositor.CreateSurfaceBrush(); var uriSource = UriManager.GetFilUriFromString(Source); imageSource = imageFactory.CreateImageFromUri(uriSource); surfaceBrush.Surface = imageSource.Surface; }
private async Task<bool> CreateSurface() { surfaceBrush = compositor.CreateSurfaceBrush(); //var uriSource = UriManager.GetFilUriFromString(Source); //imageSource = imageFactory.CreateImageFromUri(uriSource); try { var file = await Windows.Storage.StorageFile.GetFileFromPathAsync(Source); if (file != null) { imageSource = imageFactory.CreateImageFromFile(file); surfaceBrush.Surface = imageSource.Surface; surfaceBrush.Stretch = CompositionStretch.UniformToFill; } } catch //(Exception ex) { return false; } return true; }
private void Canvas_PointerMoved(object sender, PointerRoutedEventArgs e) { CompositionImage image = ((DependencyObject)sender).GetFirstDescendantOfType <CompositionImage>(); _currentTechnique.OnPointerMoved(e.GetCurrentPoint(image).Position.ToVector2(), image); }
internal static void Add(string cacheKey, CompositionImage compositionImage, Dependency[] dependencies) { Provider.AddToCache(cacheKey, compositionImage, dependencies); }
public static void SendImageToHttpResponse(HttpContext context, CompositionImage compositionImage) { context.Response.ContentType = compositionImage.Properties.MimeType; Composition.SaveImageStream(compositionImage, context.Response.OutputStream); context.Response.Flush(); }
public abstract void AddToCache(string cacheKey, CompositionImage compositionImage, Dependency[] dependencies);