设置BMP / JPG文件的像素颜色

我正在尝试设置图像的给定像素的颜色。 这是代码片段 Bitmap myBitmap = new Bitmap(@”c:\file.bmp”); for (int Xcount = 0; Xcount < myBitmap.Width; Xcount++) { for (int Ycount = 0; Ycount < myBitmap.Height; Ycount++) { myBitmap.SetPixel(Xcount, Ycount, Color.Black); } } 每次我收到以下exception: 未处理的exception:System.InvalidOperationException:具有索引像素格式的图像不支持SetPixel。 bmp和jpg文件都抛出exception。

ASP.NET Web API部分响应Json序列化

我正在实现支持部分响应的Web API。 /api/users?fields=id,name,age 鉴于用户类 [JsonObject(MemberSerialization.OptIn)] public partial class User { [JsonProperty] public int id { get; set; } [JsonProperty] public string firstname { get; set; } [JsonProperty] public string lastname { get; set; } [JsonProperty] public string name { get { return firstname + ” ” + lastname; } } [JsonProperty] public int age { […]

C#WebClient登录accounts.google.com

我很难尝试使用webclient对accounts.google.com进行身份validation 我正在使用C#WebClient对象来实现以下function。 我将表单字段提交到https://accounts.google.com/ServiceLoginAuth?service=oz 这是POST字段: service=oz dsh=-8355435623354577691 GALX=33xq1Ma_CKI timeStmp= secTok= Email=test@test.xom Passwd=password signIn=Sign in PersistentCookie=yes rmShown=1 现在,在我提交数据之前加载登录页面时,它有以下标题: Content-Type text/html; charset=UTF-8 Strict-Transport-Security max-age=2592000; includeSubDomains Set-Cookie GAPS=1:QClFh_dKle5DhcdGwmU3m6FiPqPoqw:SqdLB2u4P2oGjt_x;Path=/;Expires=Sat, 21-Dec-2013 07:31:40 GMT;Secure;HttpOnly Cache-Control no-cache, no-store Pragma no-cache Expires Mon, 01-Jan-1990 00:00:00 GMT X-Frame-Options Deny X-Auto-Login realm=com.google&args=service%3Doz%26continue%3Dhttps%253A%252F%252Faccounts.google.com%252FManageAccount Content-Encoding gzip Transfer-Encoding chunked Date Thu, 22 Dec 2011 07:31:40 GMT X-Content-Type-Options nosniff X-XSS-Protection […]

如何在C#中向串行设备发送字节?

我有一个使用串行(通过USB适配器)与我的PC连接的设备。 我很难在C#中很好地发挥它。 我知道它工作正常,因为供应商提供的软件表现得如预期的那样。 我也知道我能够使用我的代码接收数据,这要归功于重复发送“OK”的测试模式。 这是我的代码: private SerialPort port; public SerialConnection() { this.port = new SerialPort(“COM3”, 38400, Parity.None, 8, StopBits.One); this.port.WriteTimeout = 2000; port.ReadTimeout = 2000; this.port.Open(); this.port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived); } public void SendCommand(byte[] command) { this.port.Write(command,0,command.Length); string chars = “”; foreach (byte charbyte in command) chars += (char)charbyte; Console.WriteLine(” -> ” + chars); } […]

为什么有HashSet但没有在C#中设置?

老问题 我的理解是C#在某种意义上具有HashSet和set类型。 我理解HashSet是什么。 但为什么set是一个单独的词? 为什么不是每个集合都是HashSet ? 新问题 为什么C#没有genericsSet类型,类似于Dictionary类型? 从我的角度来看,我希望有一个具有标准查找/添加/删除性能的集合。 我不关心它是用哈希还是别的来实现的。 那么为什么不在这个版本的C#中创建一个实际上被实现为HashSet的集合类,但在将来的版本中可能会有所不同? 或者为什么不至少接口ISet ? 回答 感谢所有回答如下的人: ICollection实现了很多你对ISet期望。 但是,从我的观点来看, ICollection实现了IEnumerable而集合不必是可枚举的—例如:1到2之间的实数集合(甚至更多,集合可以动态生成)。 我同意这是一个小咆哮,因为“普通程序员”很少需要不可数集。 好吧,我想我明白了。 HashSet绝对意味着被称为Set但在某种意义上保留了Set这个词。 更具体地说,.NET体系结构的创建者希望为不同的语言提供一致的集合(sic!)。 这意味着标准类的每个名称都不得与.NET语言中的任何关键字一致。 然而,在VB.NET中使用了这个词,它实际上是不区分大小写的(是吗?),所以不幸的是那里没有空间。 谜团已揭开 :) 结语 Alex Y的新答案链接到MSDN页面 ,该页面描述了即将推出的.NET 4.0接口ISet ,它的行为与我认为应该HashedSet并由HashedSet实现。 好结局。

.NET中的程序集独立序列化

我使用序列化/去序列化技术。 BinaryFormatter类。 每次创建新程序集时,即使类结构相同,BinaryFormatter也不能反序列化二进制数据,但程序集版本不同。 如果类结构保持不变,是否可以反序列化二进制缓冲区而不检查程序集版本?

是否可以创建部署为EXE或Windows服务的独立C#Web服务?

是否可以创建可以处理Web服务请求的C#EXE或Windows服务? 显然,某种嵌入式,可能有限的Web服务器必须是EXE /服务的一部分。 EXE /服务不必依赖于安装IIS。 优选地,嵌入式Web服务可以处理HTTPS / SSL类型连接。 场景是这样的:客户想要在他们的公司机器上安装一个小代理(Windows服务)。 代理将有两个主要任务:1)随着时间的推移监视系统并收集某些数据,以及2)响应Web服务请求(SOAP -v-REST仍然被讨价还价)以进行数据收集或系统更改。 客户喜欢Web服务API的概念,因此可以编写任意数量的客户端(使用任何语言)来访问公司计算机上运行的各种代理。 他们希望安装相对轻松(安装.NET,某些程序集,服务,修改Windows防火墙,启动服务),而无需安装和配置IIS。 我知道我可以用Delphi做到这一点。 但是如果可能的话,客户更愿意在C#中完成这项工作。 有什么建议?

多次调用同一Web服务阻止?

我们有一个页面向3’rd方Web服务发出请求。 当负载很重时,响应时间会显着延长,但是第三方报告说处理时间保持不变。 有时间表明,从他们收到请求到他们发回请求的时间总是大约1.5-2.0秒。 现在我们正在经历超过20秒的等待时间。 我对ASP.NET的理解是,每个请求都将在IIS线程池线程上运行,并向第3方服务返回并处理请求。 所以我真的不明白我们可能阻止什么。 有什么我想念的吗? IIS之外是否存在阻止的阈值限制? 如果我遗漏了某些内容,那么涵盖这个主题的实体书籍推荐也将是一个非常受欢迎的补充。

拜耳订购抖动

我正在为几个月前制作的Paint.net更新一个插件,它被称为模拟颜色深度,它将图像中的颜色数量减少到选定的BPP,并且很长一段时间它已经包含了抖动但是从未订购过抖动并且我认为这将是一个很好的补充,因此我开始在互联网上搜索有用的东西,我最终在这个维基页面http://en.wikipedia.org/wiki/Ordered_dithering ,并试图按照伪代码编写 for (int y = 0; x < image.Height; y++) { for (int x = 0; x < image.Width; x++) { Color color = image.GetPixel(x, y); color.R = color.R + bayer8x8[x % 8, y % 8]; color.G = color.G + bayer8x8[x % 8, y % 8]; color.B = color.B + bayer8x8[x % 8, y […]

为什么BackgroundWorker总是很忙?

我在WPF应用程序中的后台工作者中发现了一些奇怪的东西。 我现在要完成的是等到BW完成另一个线程。 检查以下代码: if (bw.IsBusy) { bw.CancelAsync(); System.Threading.ThreadStart WaitThread = new System.Threading.ThreadStart(delegate() { while (bw.IsBusy) { System.Threading.Thread.Sleep(100); } bw.RunWorkerAsync(); }); System.Windows.Application.Current.Dispatcher.Invoke( System.Windows.Threading.DispatcherPriority.Normal, WaitThread); // if I remove this line, bw fires RunWorkerAsyncEvent } else { bw.RunWorkerAsync(); } 请注意,我添加了Dispatcher.Invoke以等待bw不忙,但如果我调用它并且从不触发RunWorkerAsyncCompleted事件,则所有时间都很忙。 虽然,如果我删除该行,FIRES事件,这真的很奇怪。 我怎么能等到bw结束?