标签: writeablebitmap

使用FJCore编码Silverlight WriteableBitmap

我试图找出如何使用FJCore将WriteableBitmap编码为jpeg.我知道WriteableBitmap提供了原始像素,但我不知道如何将其转换为FJCore对其JpegEncoder方法所期望的格式.JpegEncoder有两个重载,一个采用FluxJpeg.Core.Image,另一个采用DecodedJpeg.

我试图创建一个FluxJpeg.Core.Image,但它需要一个byte [] [,]用于图像数据.byte [n] [x,y]其中x是宽度,y是高度,但我不知道n应该是什么.

我认为n应该是4,因为那将对应于每个像素中编码的argb信息,但是当我尝试FJCore抛出一个超出范围异常的参数时.这是我试过的.Raster是我的byte [4] [x,y]数组.

raster[0][x, y] = (byte)((pixel >> 24) & 0xFF);
raster[1][x, y] = (byte)((pixel >> 16) & 0xFF);
raster[2][x, y] = (byte)((pixel >> 8) & 0xFF);
raster[3][x, y] = (byte)(pixel & 0xFF);
Run Code Online (Sandbox Code Playgroud)

silverlight writeablebitmap fjcore

5
推荐指数
1
解决办法
1万
查看次数

具有厚度的抗锯齿线算法(在WriteableBitmap上)

我正在寻找一个处理厚度的抗锯齿线绘制算法(例如Wu,Bresenham)的代码示例.这适用于使用WPF/Silverlight的WriteableBitmap的跨平台应用程序,但任何基于C语言无疑都会有用.

我已经用谷歌搜索了这个主题,但是你可以想象没有很多好的代码示例,因为绘图框架如GDI/GDI +为你处理这个问题.

有人可以帮忙吗?

algorithm wpf drawing antialiasing writeablebitmap

5
推荐指数
0
解决办法
3307
查看次数

如何在Windows Phone上合并2个图像

我有2个图像,我想将它们合并到Windows Phone中的应用程序中.

我的WP相机拍摄的第一张图像,第二张图像是一个框架(边框,滤镜等),用户可以在我们的模板中选择.那么如何将它们合并为一个呢?

谢谢和最好的问候.

.net c# bitmapimage writeablebitmap windows-phone-7

5
推荐指数
1
解决办法
5236
查看次数

在Metro Windows 8中将ImageSource转换为WriteableBitmap

我想知道如何将ImageSource对象(在我的例子中是图像元素的source属性)转换为WriteableBitmap.该WriteableBitmap(BitmapSource)构造函数无法在Windows 8地铁工作,所以我不能这样做.

我试图将ImageSource对象加载到流然后使用WriteableBitmap.SetSource(stream),但我无法弄清楚如何在流中加载图像.

InMemoryRandomAccessStream ras = new InMemoryRandomAccessStream();
BitmapEncoder enc = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, ras);

byte[] pixelArray = new byte[(uint)photoBox.Height * (uint)photoBox.Width * 4];

enc.SetPixelData(BitmapPixelFormat.Rgba8, BitmapAlphaMode.Straight,
                 (uint)photoBox.Width, (uint)photoBox.Height, 96, 96, pixelArray);
Run Code Online (Sandbox Code Playgroud)

我还添加了我在网上找到的帮助方法:

public Byte[] BufferFromImage(BitmapImage imageSource)
{
    Stream stream = imageSource.StreamSource;
    Byte[] buffer = null;
    if (stream != null && stream.Length > 0)
    {
        using (BinaryReader br = new BinaryReader(stream))
        {
            buffer = br.ReadBytes((Int32)stream.Length);
        }
    }

    return buffer;
}
Run Code Online (Sandbox Code Playgroud)

问题是BitmapImage …

c# imagesource writeablebitmap windows-runtime windows-store-apps

5
推荐指数
1
解决办法
8169
查看次数

将图像加载到writeablebitmap中

所以我试图将图像加载到WriteableBitmap但我得到一个NullReferenceException.无法弄清楚为什么因为我以前认为这曾经工作过

BitmapImage b = new BitmapImage(new Uri(@"images/Car.jpg", Urikind.Relative)); WriteableBitmap wb = new WriteableBitmap(b);

而已.我将汽车图像作为我项目中的资源.它工作正常,因为我可以创建一个Image控件并将其源设置为BitmapImage并显示它.谢谢

c# silverlight writeablebitmap

5
推荐指数
1
解决办法
1万
查看次数

如何在WinRT中将水印文本添加到位图?

我想做这样的事情http://weblogs.asp.net/broux/archive/2011/02/08/silverlight-how-to-watermark-a-writeablebitmapimage-with-a-text.aspx。我很难在WinRT中使用它。我正在使用WriteableBitmap扩展来“渲染”一些文本,但我希望它看起来像本示例中的样子。有什么建议或帮助吗?

c# writeablebitmap writeablebitmapex windows-runtime

5
推荐指数
0
解决办法
1213
查看次数

如何将分辨率为 32767 x 32767 的 C# .NET WriteableBitmap 保存为 JPG 或 PNG

这是针对在具有 32GB 内存的 64 位 Windows 8 系统上运行的 .NET 4.5 控制台应用程序。该应用程序面向 64 位平台,并启用了 gcAllowVeryLargeObjects 标志,这允许应用程序创建大于 .NET 2Gb 限制的对象。因此,我能够创建一个最大 15GB 的整数数组。

我使用以下构造函数创建一个 32,767 x 32,767 像素的 System.Windows.Media.Imaging.WriteableBitmap,它使用 WIC(Windows 成像组件而不是 GDI+,因为 WIC 可以处理比 GDI+ 更高的分辨率)

WriteableBitmap wbit = new WriteableBitmap(32767, 32767, 300, 300, PixelFormats.Bgra32, null);
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下代码将其另存为 JPG

using (FileStream stream = new FileStream("c:\\test.jpg",FileMode.Create))
{
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(wbit));
encoder.Save(stream);
}
Run Code Online (Sandbox Code Playgroud)

我还尝试使用以下代码将其另存为 PNG

using (FileStream stream = new FileStream("c:\\test.png",FileMode.Create))
{
PngBitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(wbit));
encoder.Save(stream);
}
Run Code Online (Sandbox Code Playgroud)

对于 JPG 和 …

.net c# jpeg bitmap writeablebitmap

5
推荐指数
1
解决办法
704
查看次数

将像素写入新的可写位图

该程序执行此https://www.youtube.com/watch?v=l1_WmoiKgPg只有视频的前50秒第二个选项卡完成:)所以基本上你选择最红的颜色然后如果它等于最绿的那么最蓝的.但新的像素没有写入新图像为什么?以及如何用随机类做第一个单选按钮?

我的自定义方法:

private void writepixel(WriteableBitmap ElWriteableBitmap, int iCoordX, int iCoordY, byte bRojo, byte bVerde, byte bAzul, byte bAlfa)
{
    unsafe
    {
        int ipTempBackBuffer = (int)ElWriteableBitmap.BackBuffer;
        ipTempBackBuffer += iCoordY * ElWriteableBitmap.BackBufferStride;
        ipTempBackBuffer += iCoordX * 4;

        int color_data = bAlfa << 24; // Canal alfa
        color_data |= bRojo << 16; // Componente rojo
        color_data |= bVerde << 8; // Componente verde
        //color_data = color_data & (bVerde << 8);
        color_data |= bAzul << 0;  // Componente azul 

        *((int*)ipTempBackBuffer) = color_data; …
Run Code Online (Sandbox Code Playgroud)

c# wpf pixel writeablebitmap

5
推荐指数
0
解决办法
354
查看次数

Silverlight 4的WriteableBitmap*是否真的*以DRM的名义削弱了合法的跨域访问?

一年前的这个帖子中,它解释了当WriteableBitmap的任何部分来自外部域时 - 例如免费的图像服务器,它将阻止读取访问.

它进一步阐述了这是针对"DRM"的.我想有人在Silverlight中写一个电影开膛手有一个很大的威胁,其中包括来自另一个域的电影,然后重新捕获它...除了实现你可以重写血腥的xap,因为它从线下来然后它是同一个领域!但这既不是在这里也不是在那里.

无论如何,显然我正在尝试使用WritableBitmap导出用户当前设置的屏幕截图; 但我已经被这个跨域问题所阻止了.

在最新版本的Silverlight中,确实没有支持的方法吗?没有crossdomain.xml或clientaccesspolicy.xml?对于Silverlight而言,这不是一个瘫痪 - 一个巨大的"螺丝你",这会阻碍开发人员的半心半意安全障碍,但不会阻止攻击者?

编辑:这个问题等同于这里这个问题.

silverlight cross-domain writeablebitmap silverlight-4.0

4
推荐指数
1
解决办法
1914
查看次数

4
推荐指数
1
解决办法
2万
查看次数