问题标签 [imagebrush]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1024 浏览

c# - RenderTargetBitmap : 无法释放/处置句柄

对不起,我的英语不好。

我想将 DrawingVisual 渲染为位图,以便创建 DiffuseMaterial。我这样做:

但...

  • 如果我使用 GetDiffuseMaterial 方法 10000 次,应用程序就会停止。这是“正常的”,因为每个应用程序最多可以有10000 个 GDI 句柄,而 RenderTargetBitmap 每次创建时使用 1 个 GDI 句柄。
  • 解决此问题的方法是释放 RenderTargetBitmap 对象。但我没来得及做。我试过这个(在 mat.Freeze() 和 return mat; 之间):

    /li>
  • 另一种方法是只有一个 RenderTargetBitmap 并将其作为参数提供给 GetDiffuseMaterial。
    但是如果我调用两次 GetDiffuseMaterial,我将有两个相同的材质,因为句柄是共享的,材质采用最后修改。(所以即使文本参数不一样!)

我看不到用 RenderTargetBitmap 做我想做的另一种方法。
注意:GetDiffuseMaterial 可以调用 100 万次...

RenderTargetBitmap 是我发现从字符串文本创建 DiffuseMaterial 的最快方法。其他技术真的很慢:使用带有 TextBlock 的 VisualBrush,使用 DrawingBrush,... 例如:使用 RenderTargetBitmap 对 GetDiffuseMaterial 的 5000 次调用至少比其他技术快 10 倍。

谢谢您的帮助。

0 投票
1 回答
139 浏览

wpf - Imagebrush 正在拉伸图像的一个实例,而不是另一个实例

我遇到的一个奇怪的事件是,我有一组使用某个图像作为背景的重复按钮。尽管按钮相同,但显示方式不同。下面是完全可重现的样本,以及许多变化,每个变化都有不同的结果。

图标链接:

https://github.com/driftyco/ionicons/blob/master/png/512/plus.png https://github.com/driftyco/ionicons/blob/master/png/512/minus.png

在此处输入图像描述

我正在创建一个控件来控制一个点的 x、y、z 位置。如上图所示,只有一个加号图标似乎被拉伸了。

变化:

  • 如果我删除 Z 和与之关联的图标,则 Y 的最后一个加号图标不会被拉伸
  • 从 Z 中删除 fontweight 会使加号图标看起来正常(未拉伸)

什么会导致图像画笔像这样拉伸图像?

0 投票
0 回答
40 浏览

c# - WPF C# 位图资源作为 ImageBrush 的 Imagesource

我有位图资源 Properties.Resources.part1

如何将此资源设置为 Rectangle.Fill 属性?

0 投票
1 回答
394 浏览

c# - 从 WebRequest 流创建 ImageBrush

我在ImageBrushStream. 以下代码用于使用 填充RectangleWPF ImageBrush

我想要做的是调用 aWebRequest并获取 a Stream。然后我想使用Stream图像填充我的矩形。这是代码:

问题是我不知道如何设置我的imgBrush.ImageSourceusing response.GetResponseStream(). 我怎样才能Stream在我的ImageBrush?

0 投票
2 回答
171 浏览

wpf - 获取拉伸值Uniform引起的填充

WPF UI 元素定义了宽度和高度,背景设置为图像画笔,并在运行时将图像源指向一些随机图像。未设置拉伸属性,因此我认为它是发挥作用的默认值“填充”。由于控件大小和图像大小不同,因此在运行时,背景图像画笔会以某种纵横比填充,即在控件内部(视觉上)填充。有没有办法获得这个填充值?

示例代码:

如果我使用颜色而不是图像画笔,它会填充整个区域。但如果我使用 5000 * 4000 尺寸的图像,它会稍微拉伸以填充空间(没有倾斜和裁剪)。那不是真正的填充,视觉上我们感觉到列表框边界和图像边界有一个填充。让我尝试对此进行快照。

0 投票
1 回答
2234 浏览

c# - 使用条件 (WPF) 以编程方式更改 ImageBrush Imagesource

我有这样的xaml

还有这样的c#代码

所以我想要的是,如果用户使用不同的语言,界面中的所有图像都将使用我设置条件的语言。因此,我需要将所有状态下的所有按钮图像更改为 c# 代码中的新按钮。

0 投票
3 回答
523 浏览

image - Create imagebrush, bitmap and writeablebitmap from an url

Hey I have a windows phone 8.1 app using the silverlight API. I am downloading this image from my blob storage.

Image to be downloaded

The image is coming from a link like this: https://[service].blob.core.windows.net/[imagename].png and the image can be showned and downloaded in multiple browsers, just using the URI.

I now want to use this as a imagebrush based on the imageuri from the blobstorage:

The myOnlineImage is not created correctly, at least I cannot convert the image to a writeablebitmapimage (getting a null exception from the conversion), and in addition the imagebrush is empty, i.e. null. But as far as I know this is the way to do it?

So basicly

How do I create an imagebrush based on an url to a https site?

0 投票
1 回答
81 浏览

windows-phone-8.1 - WP81 绑定图片失败,设置本地后备图片丢失原始绑定

我将 Windows Phone 8.1(RT 不是 silverlight)上 ImageBrush 的 ImageSource 绑定到远程 uri,并在图像无法显示默认图像时有一个处理程序:

在后面的代码中,我更新了图像源属性以将其设置为本地图像:

这很好用,但是通过这样做,我失去了原始绑定,因此如果我用不同的绑定值重新加载同一个屏幕,它不会重新绑定。

考虑到我正在做的事情,这是有道理的,所以在这种情况下,我的问题是我做错了什么以及如何正确设置后备图像,同时允许图像在重新加载时重新绑定自身?

0 投票
2 回答
118 浏览

c# - 如何在多边形内旋转位图?

我这样定义了一个多边形:

我还定义了一个这样的故事板:

我像这样开始多边形旋转:

上面的代码按预期旋转了整个多边形。但是我想修改它,让多边形静止,只是在多边形内旋转位图。

我怎么做?谢谢

0 投票
0 回答
296 浏览

c# - 加载图像画笔的快速方法

我正在寻找一种将图像作为背景画笔加载到 Windows 10 Mobile UWP XAML 页面(网格背景)的良好且快速的方法。

目前我这样做如下:

  1. 在 Page.Resources 部分定义 ImageBrush
  2. 使用已定义的 ImageBrush 并将 Background 设置为此资源

第一步:

第二步:

不幸的是,当页面第一次出现时,背景画笔至少需要 1.5 秒才能显示出来。所以与此同时,只有一个白色的背景,这不是我想要实现的。我的背景图片“bg_login.jpg”已经压缩到大约 40kb。

有没有更快的方法将图像显示为网格背景?或者我是否有机会在启动画面显示时加载图像?

任何帮助将不胜感激。提前致谢。