c# - 如何在 F# 或 C# 中将像素绘制到位图上而不是抗锯齿点上?

标签 c# plot f# pixel system.drawing

我经常使用 System.Drawing 和 System.Windows.Forms 将像素绘制到位图,但我注意到它实际上从来都不是单个像素。它更像是一个边缘模糊的 3x3 点。我怎样才能只绘制一个像素?目前我正在使用 bitmap.SetPixel(x, y, color)

F#

open System.Drawing

let bitmap = new Bitmap(256, 256)

for x in 0 .. 255 do
    for y in 0 .. 255 do
        bitmap.SetPixel(x, y, Color.White)

最佳答案

显示位图时,您可以关闭抗锯齿功能。

graphics.SmoothingMode = SmoothingMode.None;
graphics.InterpolationMode = InterpolationMode.NearestNeighbor;
graphics.PixelOffsetMode = PixelOffsetMode.Half;

Bitmap.SetPixel 仅更改一个像素,不会产生任何抗锯齿效果。

关于c# - 如何在 F# 或 C# 中将像素绘制到位图上而不是抗锯齿点上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52430112/

相关文章:

matlab - 围绕具有相同值的垂直像素组绘制矩形

plot - 如何使用 Julia 中的 Plots 获得等比例的轴

types - 在 F# 中实现包含元素的队列类型

c# 如何打开二进制文件并将其存储在 16 位缓冲区中

R 需要重新启动 RStudio 以使用 dev.copy() 和 dev.off() 查看并保存在文件中

c# - 将 CRC16 计算从 C 转换为 C#

f# - 检查几种选项类型,然后转换为类型

performance - 我可以从 F# 交互式计时输出中提取哪些有用信息?

c# - Visual Studio 服务引用的自定义模板?

c# - List<string> 和 IEnumerable<string> 有什么区别