社区
C#
帖子详情
C#里的图像变化
ernestm
2004-11-02 11:50:48
我想问一下Visual.C#有没有什么控件能够把图像用一个二维数组或别的代替,然后又能够把二维数组转化为图像
...全文
285
17
打赏
收藏
C#里的图像变化
我想问一下Visual.C#有没有什么控件能够把图像用一个二维数组或别的代替,然后又能够把二维数组转化为图像
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
E0888
2004-11-22
打赏
举报
回复
推荐一个C#群:6613147,欢迎C#热心的C#爱好者加入(注:如果只是想潜水的,请不要加。)
haiwangstar
2004-11-22
打赏
举报
回复
要注意的是,在你操作从流创建的图像时,要保持流打开,否则会异常。。
haiwangstar
2004-11-22
打赏
举报
回复
其实非常简单。我加了注释那几行就应该是你要的。
就是把一个图像写入流,和从一个流中创建图像。如果你想要图像的字节数组,取流的GetBuffer即可。。
下面的代码是操作位图字节数据的。
wsjdx
2004-11-22
打赏
举报
回复
顶
haiwangstar
2004-11-22
打赏
举报
回复
Bitmap bit = sourceImage as Bitmap; //
if(bit == null) //如果原图不是位图。
{
MemoryStream s = new MemoryStream();
sourceImage.Save(s,ImageFormat.Bmp);//写入流。
bit = (Bitmap)Image.FromStream(s); //从流中读取位图。
}
BitmapData bmData = bit.LockBits(new Rectangle(0, 0, bit.Width, bit.Height), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);
int stride = bmData.Stride;
System.IntPtr Scan0 = bmData.Scan0;
int r=0, g=0, b=0;
float v=0;
unsafe
{
byte * p = (byte *)(void *)Scan0;
int nOffset = stride - bit.Width*3;
for(int i=0;i<bit.Height;++i)
{
for(int x=0; x < bit.Width; ++x )
{
r = p[2];
g = p[1];
b = p[0];
v = r*0.299F + g*0.587F + b*0.114F + 0.3F;
hist[(byte)v]++;
p += 3;
}
p += nOffset;
}
}
bit.UnlockBits(bmData);
int total = 0;
for(int i=0; i!=256; i++)
{
if(hist[i]>total)
{
total = hist[i];
}
}
for(int i=0; i!=256; i++)
{
// values[i] = (int)((float)hist[i]/total*100);
values[i] = Math.Min(100,(hist[i]*1024/total));
}
newImageValue = true;
ernestm
2004-11-22
打赏
举报
回复
怎么没有人回答,帮帮忙嘛
ernestm
2004-11-11
打赏
举报
回复
我是个新手,您能不能给一个具体的例子(binarywriter把image的buffer写入流,
取的话用Image.From(xstream))给我,非常感谢!
kangxidadi
2004-11-10
打赏
举报
回复
位图格式图像本身就是二维的像素数组,用像素的x,y坐标就可以存取像素,如果非要用数组形式,可以自己写个类封装位图,用坐标做索引。
用流存图片,简单的做法是new 一个流对象,用binarywriter把image的buffer写入流,
取的话用Image.From(xstream)就行了。
ernestm
2004-11-10
打赏
举报
回复
还想问一下有没有什么组件能够对图象进行变形,像弯曲这一类的
ernestm
2004-11-10
打赏
举报
回复
自己将图像转换为二进制流,然后再还原成图像,能不能把这个方法具体说一下呀,谢谢
AhBian
2004-11-02
打赏
举报
回复
利用 Bitmap.GetPixel 和 Bitmap.SetPixel 方法可以实现楼主的要求.
但现成的组件好象没有。
「已注销」
2004-11-02
打赏
举报
回复
可以
xiaoslong
2004-11-02
打赏
举报
回复
up
_jfeng
2004-11-02
打赏
举报
回复
没有,自己将图像转换为二进制流,然后再还原成图像,是可以的
canoe_eyes
2004-11-02
打赏
举报
回复
gz
lidawen
2004-11-02
打赏
举报
回复
學習
520NET
2004-11-02
打赏
举报
回复
LG
C#
OpenCV机器视觉:特征匹配 “灵魂伴侣”
本文围绕
C#
和OpenCvSharp进行
图像
特征匹配展开。先介绍特征匹配在计算机视觉中的重要性及面临的
图像
变化
挑战,接着阐述OpenCvSharp
里
多种特征匹配算法,如高效的ORB、经典的SIFT等,最后作者总结感悟,认为特征匹配如生活充满惊喜。
C#
WinForm
图像
拖动控制数值
变化
实战
本文详细介绍在
C#
WinForm中利用PictureBox控件实现
图像
拖动,并通过线性映射将坐标转换为业务数值的方法。涵盖SizeMode设置、鼠标事件处理、坐标映射、边界校验及UI同步,适用于参数调节、音量控制等交互场景,提升桌面应用的响应性与用户体验。
C#
OpenCV OpenCVSharp应用实例--轮廓匹配/形状匹配查找模板
图像
(适用角度
变化
)
本文介绍了如何使用
C#
和OpenCVSharp进行形状匹配和轮廓查找,特别是针对角度
变化
的模板
图像
。通过二值化、轮廓筛选和匹配阈值设置,从测试
图像
中准确定位十字轮廓。
彩色
图像
的曲线灰度
变化
(伽马变换)
这是一个数字媒体实验课的作业,实现了类似Photoshop中曲线调整功能的彩色
图像
灰度变换。程序采用OpenCV进行
图像
处理,
C#
WPF构建图形界面。主要难点包括曲线图表的绘制和
C#
与C++程序间的参数传递。通过设置伽马值,利用伽马变换公式(Y=C*X^γ)生成曲线上的点并连接形成平滑曲线。
C#
通过Process类调用C++程序,传递图片路径和伽马值进行处理,处理后的
图像
在
C#
界面中显示。
C#
自定义
图像
显示控件UVCanvas
本文介绍了
C#
自定义
图像
显示控件UVCanvas,它基于Windows Forms的Control类扩展实现,具备
图像
显示、缩放、平移、双击重置等功能,能绘制棋盘格背景,实时显示鼠标对应
图像
坐标及像素RGB值,还提供坐标
变化
事件回调,适合
图像
处理工具等场景。
C#
111,129
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章