- 浏览: 437930 次
- 性别:
- 来自: 唐山
文章分类
最新评论
-
hautbbs:
谢谢分享!
ASP.NET 导出Excel 和csv -
hautbbs:
感谢分享!
ASP.NET 导出Excel乱码的终极解决 -
wyf:
zcl920 写道只能说 看不懂。要发就发全 取一段出来 有什 ...
图片上绘制文字换行处理 -
zcl920:
只能说 看不懂。要发就发全 取一段出来 有什么用。
图片上绘制文字换行处理 -
380086154:
有用,谢谢。
js比较日期
One of the high-profile missing features in Silverlight has been Printing support. If you have ever tried to print a web page containing Silverlight content, what you saw on the printed page may be skewed or even missing altogether! So, what if you wanted to print a portion of your Silverlight screen, or take a “snapshot” image of the Silverlight UI to include in a report or other printable format?
WriteableBitmap bitmap = new WriteableBitmap(cnvSource, new TranslateTransform());2.Convert the WriteableBitmap pixels to a PNG using Joe Stegman's PNG encoder.
EditableImage imageData = new EditableImage(bitmap.PixelWidth, bitmap.PixelHeight); for (int y = 0; y < bitmap.PixelHeight; ++y) { for (int x = 0; x < bitmap.PixelWidth; ++x) { int pixel = bitmap.Pixels[bitmap.PixelWidth * y + x]; imageData.SetPixel(x, y, (byte)((pixel >> 16) & 0xFF), (byte)((pixel >> 8) & 0xFF), (byte)(pixel & 0xFF), (byte)((pixel >> 24) & 0xFF) ); } } Stream pngStream = imageData.GetStream();NOTE that this PNG encoder does NOT include compression! This would be a good optimization to add, but also note that the GZipStream class is not present in Silverlight, so you would need to use an outside compression library such as SharpZipLib.
3.At this point, we have the PNG bytes in a stream, and you could take several approaches to get these bytes up to the server – such as using an Http Handler (ASHX). In this demo, we’ll place the bytes into a hidden field on the ASPX page and post the page back to the server for inclusion in a report. To do this, we’ll translate the PNG bytes into a string using Base64 encoding:
4.Now that we have our bytes up on the server, we can decode them and feed them to a ReportViewer (RDLC) report. This will give us a nicely printed format and the ability to export to PDF: That’s it! I really think this use of WriteableBitmap as a snapshot/print function will be useful in some of my projects that need to capture the current view of the Silverlight application. byte[] binaryData = new Byte[pngStream.Length];
long bytesRead = pngStream.Read(binaryData, 0, (int)pngStream.Length);
string base64String =
System.Convert.ToBase64String(binaryData,
0,
binaryData.Length);
// save the encoded PNG bytes to the page
HtmlDocument document = HtmlPage.Document;
HtmlElement txtPNGBytes = document.GetElementById("txtPNGBytes");
txtPNGBytes.SetProperty("value", base64String);
// this calls a js function "postBackPrint" which will cause a postback
HtmlPage.Window.CreateInstance("postBackPrint", new string[] { });
string bytes64 = Request["txtPNGBytes"];
byte[] imageBytes = System.Convert.FromBase64String(bytes64);
DSReportPrintImage ds = new DSReportPrintImage();
DataRow drImage = ds.Tables[0].NewRow();
drImage["ImageBytes"] = imageBytes;
ds.Tables[0].Rows.Add(drImage);
ReportViewer1.LocalReport.ReportPath = "ReportPrintSilverlight.rdlc";
ReportDataSource src = new ReportDataSource("DSReportPrintImage_ImageData", ds.Tables[0]);
ReportViewer1.LocalReport.DataSources.Add(src);
ReportViewer1.LocalReport.Refresh();
- 1_13085732.zip (395.7 KB)
- 下载次数: 6
发表评论
-
Silverlight同步(Synchronous)调用WCF服务
2015-04-10 15:51 812基于AutoResetEvent的同步实现 利用Aut ... -
iis8 默认不支持svc解决方法
2014-09-18 18:57 785以下内容对于使用WIN2012 部署V9的时候使用。 ... -
WCF-IErrorHandler
2011-10-11 16:30 1069使用 IErrorHandler 接口,我们可以更深入地 ... -
Silverlight自定义类库实现应用程序缓存
2011-09-25 14:06 957默认情况下,如果SL项目引用了一些其它程序集(即通俗意义上的d ... -
附加属性指定图片地址
2010-12-09 16:58 1064public static void SetUrlSource ... -
Silverlight 中读取JSON数据
2010-12-02 09:16 1331假定按照 如何:对基于 ... -
画雷达图背景
2010-10-09 16:36 1356直接糊代码 public partial class Mai ... -
拖动类
2010-08-03 15:51 694public static class DragDrop { ... -
显示数据库图片
2010-05-07 10:57 1166可以创建一个类,该类允许通过从 IValueConverter ... -
Convert Hex String to .NET Color(十六进制字符串颜色转Color)
2010-05-04 17:49 2238string xCol = "#FF00DD&quo ... -
ASP.NET Membership and Roles in Silverlight 3
2010-04-27 11:02 1292Since Silverlight applications ... -
独立存储应用Using Isolated
2010-04-27 10:43 1060Silverlight uses Isolated Stora ... -
Silverlight客户端和WCF服务器端共享类库
2010-04-15 12:42 2288WCF为了给Silverlight客户端提供引用共享类型,我们 ... -
Silverlight实现多语言
2010-03-08 15:11 1844首先添加一个主资源文件Text.resx 设置生成代码 pub ... -
动态载入xap文件
2010-02-25 11:10 1176myButton.Click += new RoutedEve ... -
SilverLight中调用自定义用户控件
2010-02-25 11:07 21141.在aspx页面中切换调用同一个SilverLight项目中 ... -
Silverlight拖放封装
2009-12-09 10:51 1549public static class ExtendMe ... -
Silverlight图表控件 (超炫)
2009-12-03 14:43 7116开源的项目visifire,使用它可以在Silverlig ...
相关推荐
但如果有时候不想依赖D3D时,还有一种方案实现视频的渲染,使用wpf的WriteableBitmap,WriteableBitmap的祖先接口有ImageSource,即可以作为Image的Source显示画面。我们只需往WriteableBitmap中写入图像数据即可...
在Windows Presentation Foundation (WPF) 中,WriteableBitmap 是一个非常重要的类,它允许开发者将位图作为可写的像素数组来处理。这个类是用于直接操作图像像素,从而实现高效地处理图片和视频流。在本示例中,...
3. 显示图像:将 `WriteableBitmap` 设置为 `Image` 控件的 `Source`,即可在 WPF 界面中显示: ```csharp imageControl.Source = bitmap; ``` 二、应用场景 1. **动态图像生成**:由于 `WriteableBitmap` 可以...
3. WriteableBitmap类:掌握如何通过WriteableBitmap进行截图,并将截图保存为本地文件。 4. 文件系统访问:在Silverlight中,由于安全限制,直接访问本地文件系统有限制,通常需要通过服务器端的配合来实现保存截图...
- **JSONP或CORS**:对于现代浏览器,可以利用JSONP(JSON with Padding)或CORS(Cross-Origin Resource Sharing)来实现跨域访问,但这不适用于Silverlight。 5. **注意事项**: - 考虑到Silverlight的安全性和...
3. **双缓存策略**:双缓存是一种常见的优化手段,用于提高UI的性能。在这个项目中,可能有两种缓存:一种是后台计算生成的位图,另一种是前台显示的位图。当后台计算完成新图像后,会先将结果存储到一个临时的缓存...
Silverlight中的`WriteableBitmap`类提供了图像像素级别的操作,可以用来实现图片的缩放。通过调整`WriteableBitmap`的宽度和高度,可以对图片进行等比例或非等比例缩放。同时,`RenderTransform`也可以用于图形的...
3. **WriteableBitmap**: 虽然主要用于图像处理,但在录音过程中,WriteableBitmap可以用来创建一个临时的音频数据流,以便在录制过程中进行处理或预览。 ### 录音流程 1. **初始化**: 首先,需要检查用户浏览器...
2. **图形渲染**:Silverlight提供了`WriteableBitmap`类,允许在内存中直接操作像素,这在生成热图时非常有用。通过设置每个像素的颜色,可以构建出整个热图。 3. **动画和交互**:Silverlight的动画系统可以用来...
3. **遵循安全性最佳实践**:确保应用程序遵循 Silverlight 的安全沙盒规则,不要尝试执行超出权限的操作。 4. **考虑多设备支持**:在设计应用时考虑不同屏幕尺寸和分辨率的需求,确保应用在各种设备上都能有良好...
标题中的“Silverlight调用摄像头”是指在Silverlight应用程序中集成和使用摄像头功能。Silverlight是微软开发的一个浏览器插件,用于创建丰富的、交互式的Web应用程序,它支持多媒体处理,包括音频和视频。在...
3. **创建VideoBrush**:为了在界面上显示摄像头的实时流,我们需要创建一个`VideoBrush`,并将其`RelativeSource`属性设置为我们的`CaptureSource`。 ```csharp VideoBrush videoBrush = new VideoBrush(); ...
由于Silverlight提供了丰富的图像处理类库,我们可以利用`WriteableBitmap`类来实现这一目标。下面将详细解释整个过程: 1. **选择文件格式**:允许用户选择图片的保存格式(例如BMP、JPEG等)。 2. **获取图片数据...
3. **显示和验证**:将生成的验证码显示在Silverlight应用中,处理用户输入并与服务器端的验证码进行比较。 在实际应用中,可以根据需求选择合适的方法。例如,如果需要高可定制性和更复杂的视觉效果,可以选择基于...
3. `Cmj.MyWeb.MySilverlight`:可能是一个子项目,用于处理Web端与Silverlight应用的交互,例如初始化Silverlight控件、传递参数和接收结果。 4. `SilverlightVideoRecord.Web`:可能是一个ASP.NET Web项目,负责...
3. Silverlight客户端代码:使用FileUpload控件,监听上传进度,调用WebClient下载图片。 4. 图片处理逻辑:将下载的二进制数据转换为BitmapImage,设置到Image控件中。 5. 可能还有错误处理和异常处理机制,确保...
在IT领域,Silverlight是一种由微软开发的基于插件的框架,主要用于构建和展示富互联网应用程序(RIA)。本文将深入探讨如何在Silverlight应用程序中启用摄像头功能,以及如何实现截图操作。 首先,让我们理解...
Silverlight提供了BitmapImage类用于加载和处理图片,以及WriteableBitmap类用于对图片进行像素级别的操作。 4. **UI布局**:在Silverlight中,使用Canvas或者Grid等布局控件来放置原始图片和放大镜组件,确保它们...
`WriteableBitmap`是Silverlight中用于动态绘制和修改像素的类,它是实现图像处理的关键工具。在描述中提到的`this.RenderThumbnail(bmap)`这段代码,可能是一个自定义方法,用于将传入的`BitmapSource`对象(即`...
5. **WriteableBitmap**:WriteableBitmap是WPF和Silverlight中的一个可写图像对象,允许直接访问像素数据进行编辑和绘制。这在需要动态更新图像或执行像素操作时非常有用。 以下是一些常见的转换操作: **1. 文件...