High Quality Image Scaling Library

I want to scale an image in C# with quality level as good as Photoshop does. Is there any C# image processing library available to do this thing? Here's a nicely commented Image Manipulation helper class that you can look at and use. I wrote it as an example of how to perform certain image manipulation tasks in C#. You'll be interested in the ResizeImage function that takes a System.

高质量图像缩放库

我想用C#调整图像的质量,与Photoshop一样好。 有没有任何C#图像处理库可以做这件事情? 这里有一个很好的评论的图像操作助手类,你可以看看和使用。 我将它作为如何在C#中执行某些图像处理任务的示例进行了编写。 你会对ResizeImage函数感兴趣,它将System.Drawing.Image,width和height作为参数。 using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; namespace D

How to increase performance over GDI's DrawImage(Unscaled)?

In my user control's paint handler I iterate over a collection of predefined Bitmap objects and draw them to the client area thusly: C# version: private void Control_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; foreach (BitmapObj bmpObj in _bitmapObjCollection) { g.DrawImageUnscaled(bmpObj.Bitmap, bmpObj.Location); } } VB.NET version: Private Sub

如何通过GDI的DrawImage(非标定)提高性能?

在我的用户控件的绘制处理程序中,我迭代了一组预定义的Bitmap对象,并将它们绘制到客户区: C#版本: private void Control_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; foreach (BitmapObj bmpObj in _bitmapObjCollection) { g.DrawImageUnscaled(bmpObj.Bitmap, bmpObj.Location); } } VB.NET版本: Private Sub Control_Paint(ByVal sender As Object, ByVal e As PaintE

How do I load balance parallelism in tasks wherein some tasks are very costly?

I have a list of object that needs to processed. So say that the list is a list of all customers and I need to perform CPU intensive calculation on all of them. Though before and after this calculation I need to fetch and commit data back into a database, so its not purely a CPU task. so what I do is Parallel.ForEach(list, action); Where Action is literally 1 Fetch customer data 2 Proces

如何在任务非常昂贵的任务中平衡并行性?

我有一个需要处理的对象列表。 所以说这个清单是所有客户的清单,我需要对它们进行CPU密集型计算。 虽然在计算之前和之后,我需要将数据提取并提交到数据库中,因此它不是纯粹的CPU任务。 所以我做的是 Parallel.ForEach(list, action); 行动的字面意思 1 Fetch customer data 2 Process calculate (time and memory intensive task) 3 Commit back customer data 这些代码过去很好用,但最近有时在处理大量记录的 多

Adding items to the collection being iterated over, or equivalent?

Right now, I've got a C# program that performs the following steps on a recurring basis: Grab current list of tasks from the database Using Parallel.ForEach(), do work for each task However, some of these tasks are very long-running. This delays the processing of other pending tasks because we only look for new ones at the start of the program. Now, I know that modifying the collecti

将项目添加到正在迭代的集合中,还是等效?

现在,我有一个C#程序,可以定期执行以下步骤: 从数据库中获取当前任务列表 使用Parallel.ForEach(),可以为每个任务工作 但是,其中一些任务的运行时间非常长。 这延迟了其他未决任务的处理,因为我们只在程序开始时寻找新的任务。 现在,我知道修改被迭代的集合是不可能的(对吧?),但是C#并行框架中是否有一些等价的功能可以让我在列表中添加工作,同时处理列表中的项目? 一般来说,你是正确的,修改一个

Pipeline pattern using in parallel ForEach C#

my unique doubt here is what task do I have to add to my task list to wait for the process to finished. or well if you have a different approach will be helpful, I basically want to iterate a collections of IDs where on each ID I have two process one depend on the other result. first task is a long running task over my local network. and depending on the result I will add to "MyCollection

并行使用的管道模式ForEach C#

我在这里唯一的疑问是,我必须添加什么任务才能添加到我的任务列表中,以等待该过程完成。 或者如果你有不同的方法会有所帮助,我基本上想要迭代一个ID集合,在每个ID上有两个过程依赖于另一个结果。 第一项任务是通过本地网络执行的长期任务。 并根据结果,我会添加到“MyCollection”一个新的实例,如果该任务返回true。 立足于管道模式,现在 所以,要控制所有的任务等到他们完成是我的疑问。,请看例子和评论,谢谢。 Li

How do I update the GUI from another thread?

What is the simplest way to update a Label from another thread? I have a Form on thread1 , and from that I'm starting another thread ( thread2 ). While thread2 is processing some files I would like to update a Label on the Form with the current status of thread2 's work. How can I do that? For .NET 2.0, here's a nice bit of code I wrote that does exactly what you want, and work

我如何从另一个线程更新GUI?

从另一个线程更新Label的最简单方法是什么? 我在thread1上有一个Form ,然后从另一个线程( thread2 )开始。 虽然thread2正在处理一些文件,但我想用thread2的当前状态更新Form上的Label 。 我怎样才能做到这一点? 对于.NET 2.0,下面是我写的代码,它完全符合你的需求,适用于Control上的任何属性: private delegate void SetControlPropertyThreadSafeDelegate( Control control, string propertyName,

Creating Text/Code Editor from Scratch

I need some help on looking for references in building a complex text/code editor, not just a simple one that you can only write and read plain text. What I'm actually aiming for is a text editor with Line Numbers display on the side and code highlightinh and lexing. Simply put, like a notepad++ or a dreamweaver style of text/code editor. And I want to build it on C#. I won't exactly

从头开始创建文本/代码编辑器

在构建复杂的文本/代码编辑器时,我需要寻找一些帮助,而不仅仅是一个简单的,只能编写和阅读纯文本的参考。 我实际上瞄准的是一个文本编辑器,其侧面显示了行号,并且代码突出显示,并且有趣。 简单地说,就像记事本++或Dreamweaver风格的文本/代码编辑器。 我想在C#上构建它。 我不会完全要求代码,但有些样本真的会有很大的帮助。 我可以基于我的工作,概念等等。我真的需要一些东西开始。 任何帮助表示赞赏。 非常

POSIX signal behavior

If a process is currently stopped due to a SIGTRAP signal and it is sent a SIGSTOP signal via kill(), what would be the default behavior? Would the SIGSTOP be a pending signal that is delivered after the process continues again? Or will it just be discarded/ignored? If the SIGSTOP is queued up, is there any way to remove it from the queue from outside of that process, such as in a tracing pro

POSIX信号行为

如果一个进程当前由于SIGTRAP信号而停止,并且它通过kill()发送了SIGSTOP信号,那么缺省行为是什么? SIGSTOP是一个待处理的信号,在该过程继续之后交付? 或者它会被丢弃/忽略? 如果SIGSTOP排队,是否有任何方法将它从该进程外的队列中移出,例如在跟踪过程中? 从信号(7)手册页: The signals SIGKILL and SIGSTOP cannot be caught, blocked, or ignored. 一个简单的测试,在断点处停止并发送一个SIGSTOP显示当

Simulating fluid flow over a heightmap

I am looking for a way to approximate a volume of fluid moving over a heightmap. The easiest solution I can think of is to approximate it as a large number of non-drawn spheres, of small diameter (<0.1m). I would then place a visible plane representing the surface of the water on "top" of the spheres, at the locations they came to rest. To my knowledge, no managed physics engines

在高度图上模拟流体流动

我正在寻找一种方法来逼近在高度图上移动的流体体积。 我能想到的最简单的解决方案是将其近似为大量直径较小(<0.1m)的非绘制球体。 然后,我会在球体的“顶部”放置一个代表水面的可见平面,在他们停下来的位置。 据我所知,没有托管的物理引擎包含一个内置的流体模拟器,因此是一个问题。 实现将包括使用诸如JigLibX之类的物理引擎,它能够模拟球体的运动。 为了确定飞机的高度,我考虑平均分组顶层上每个球体的最大高

Putting nodes into the parse tree which shouldn't be there

I am writing a parser for a language, and the scanner is designed to either also return unneeded terminals (eg whitespacing) OR not to do so based on a boolean flag. Now, in the parser, I don't want to clutter the grammar with all those terminals, they should be swallowed somehow "automagically" by the parse tree that I'm constructing. To do this "magic", I t

将节点放入不应存在的分析树中

我正在为一种语言编写解析器,并且该扫描器被设计用于 或者还返回不需要的终端(例如空白)或者 不这样做 基于布尔标志。 现在,在解析器中,我不想把所有这些终端的语法混淆在一起,它们应该被我正在构建的解析树“自动地”自动“吞噬”。 要做到这一点“魔术”,我想我会链接终端(简单链接的循环列表),所以我可以迭代它们并在发生缩减时“填空”(我使用LALR(1)解析器生成器) 。 这听起来像一个理智的想法,虽然有一