C#实现简易灰度图和酷炫HeatMap热力图winform(附DEMO)_第1页
C#实现简易灰度图和酷炫HeatMap热力图winform(附DEMO)_第2页
C#实现简易灰度图和酷炫HeatMap热力图winform(附DEMO)_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第C#实现简易灰度图和酷炫HeatMap热力图winform(附DEMO)//创建新的颜色混合来告诉PathGradientBrush使用什么颜色以及放置它们的位置

ColorBlendcolorBlend=newColorBlend(3);

//计算比例以将字节强度范围从0-255缩放到0-1

floatfRatio=1F/Byte.MaxValue;

//预计算字节最大值的一半

bytebHalf=Byte.MaxValue/2;

//将其中心值的强度从低高翻转到高低

intiIntensity=(byte)(HeatPoint.Intensity-((HeatPoint.Intensity-bHalf)*2));

//存储缩放和翻转的强度值以用于梯度中心位置

floatfIntensity=iIntensity*fRatio;

//定义渐变颜色的位置,使用intesity将中间颜色调整为

colorBlend.Positions=newfloat[3]{0,fIntensity,1};

colorBlend.Colors=newSystem.Drawing.Color[3]

System.Drawing.Color.FromArgb(0,System.Drawing.Color.White),

System.Drawing.Color.FromArgb(HeatPoint.Intensity,System.Drawing.Color.Black),

System.Drawing.Color.FromArgb(HeatPoint.Intensity,System.Drawing.Color.Black)

//创建新的PathGradientBrush以使用圆周点创建径向渐变

PathGradientBrushbrush=newPathGradientBrush(pointsList.ToArray());

//将颜色混合传递给PathGradientBrush以指示它如何生成渐变

brush.InterpolationColors=colorBlend;

graphics.FillPolygon(brush,pointsList.ToArray());

四、热力图生成解析

publicstaticBitmapColorize(BitmapMask,byteAlpha)

BitmapOutput=newBitmap(Mask.Width,Mask.Height,System.Drawing.Imaging.PixelFormat.Format32bppArgb);

GraphicsSurface=Graphics.FromImage(Output);

Surface.Clear(System.Drawing.Color.Transparent);

//构建一组颜色映射以将我们的灰度蒙版重新映射为全色

//接受一个alpha字节来指定输出图像的透明度

ColorMap[]Colors=CreatePaletteIndex(Alpha);

//创建新的图像属性类来处理颜色重新映射

//注入我们的颜色映射数组来指示图像属性类如何进行着色

ImageAttributesRemapper=newImageAttributes();

Remapper.SetRemapTable(Colors);

//使用新的颜色映射方案将我们的蒙版绘制到我们的内存位图工作表面上

Surface.DrawImage(Mask,newSystem.Drawing.Rectangle(0,0,Mask.Width,Mask.Height),0,0,Mask.Width,Mask.Height,GraphicsUnit.Pixel,Remapper);

returnOutput;

privatestaticColorMap[]CreatePaletteIndex(byteAlpha)

ColorMap[]OutputMap=newColorMap[256];

AssemblymyAssembly=Assembly.GetExecutingAssembly();

StreammyStream=myAssembly.GetManifestResourceStream("热力图Demo.Image.gradient-palette.jpg");

BitmapPalette=newBitmap(myStream);

for(intX=0;X=255;X++)

OutputMap[X]=newColorMap();

OutputMap[X].OldColor=System.Drawing.Color.FromArgb(X,X,X);

OutputMap[X].Ne

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论