我正在使用WinForms。在我的表单中,我有一个pictureBox(设置为normalmode)、下一个和上一个按钮。我想快速调整和加载多页TIF图像。当我转到多页TIF图像的下一页时,每次将图像绘制到pictureBox时都会遇到延迟。图像的平均速度大约需要800毫秒。我希望页面在100毫秒内加载。我希望处理大型TIF图像的性能与IrfanView一样快。IrfanView是一个小型图像查看应用程序。如果您下载IrfanView,您可以看到性能有多快。目前我有另一种解决方案,我使用多线程后台工作程序将TIF页面加载到数组中,然后缩小它。这种方法最初需要一些时间,但这里的目标是不必
bpp=每像素位数,因此32bpp表示R/G/B/A为8/8/8/8。就像.NET对这些“System.Drawing.Imaging.PixelFormat”有一个枚举。现在,一旦我有了包含我的图形的位图或图像对象,我将如何将它保存到一个文件/我将采用什么格式有什么用?什么图像文件格式(JPEG/GIF/PNG)支持低位深度,如16bpp或8bpp(而不是通常的32bpp或24bpp) 最佳答案 我不认为其他人的回答测试了他们的代码,因为GDI+PNG不支持Encoder.BitDepthEncoderParameter。事实上,
我正在尝试使用itextsharp从pdf中提取所有图像,但似乎无法克服这一障碍。错误发生在System.Drawing.ImageImgPDF=System.Drawing.Image.FromStream(MS);行,给出“参数无效”错误。我认为当图像是位图而不是任何其他格式时它有效。我有以下代码-抱歉太长了;privatevoidForm1_Load(objectsender,EventArgse){FileStreamfs=File.OpenRead(@"reader.pdf");byte[]data=newbyte[fs.Length];fs.Read(data,0,(int
我在尝试将图像保存到数据库时遇到此错误。我做错了什么?这是我的表格设计:我使用的是MicrosoftServer2008。 最佳答案 你有两个问题:关于SQLServer中的Image数据类型的(可以理解的)混淆。这实际上只是一个大的二进制对象(通俗地说就是BLOB)。为了在此列中保存图像(或任何其他内容),您必须先将其转换为byte[],然后将该字节数组存储在列中。您使用的是Image数据类型,该数据类型已被弃用。如果您可以控制此设计,请将其更改为使用varbinary(MAX)。虽然Image类型仍在SQLServer2008R
我试图让PictureBox控件中的图像根据窗口的大小自动调整其大小,但保持纵横比。到目前为止,只需将SizeMode设置为StretchImage即可使图像拉伸(stretch)以适合整个PictureBox控件。这忽略了宽高比,这不是我想要的。是否可以保持宽高比,但仍将图像拉伸(stretch)到最大,它可以随着表单大小的变化而动态移动?是否有可能做到这一点并且它仍然居中?我想我可以在每次调整窗口大小时在内存中重新创建图像,但这似乎是个坏主意。 最佳答案 我相信这是PictureBoxSizeMode.Zoom的效果.文档说:T
我有一个从Panel创建的全局图形对象。每隔一定时间从磁盘中拾取图像并使用Graphics.DrawImage()绘制到面板中。它在几次迭代中工作正常,然后我得到以下有用的异常:System.Runtime.InteropServices.ExternalException:AgenericerroroccurredinGDI+.atSystem.Drawing.Graphics.CheckErrorStatus(Int32status)atSystem.Drawing.Graphics.DrawImage(Imageimage,Int32x,Int32y)atSystem.Drawi
我正在解决一个问题,即当我使用GDI操作调整大小后的图像时,它们会失去色彩饱和度。我正在加载一个JPG作为原始图片,调整它的大小,结果图像的饱和度(颜色强度)比原始图片低很多。我能做些什么来改善它?这是我的代码:using(varoriginal=System.Drawing.Image.FromStream(newMemoryStream(image.RawData))){using(vardst=newBitmap(width,height,PixelFormat.Format32bppArgb)){using(varg=Graphics.FromImage(dst)){g.Smo
我有一张240x320的图像(纵向的iphone相机图像),我需要以编程方式(在C#中)向两侧添加白色“条”,将整个图像大小增加到320x320。我不想缩放图像,因为那样会弄乱纵横比。我找到了很多有关如何使用C#删除白条的信息,但没有找到有关如何添加白条的信息。我很茫然。有没有人有任何意见可以引导我正确的方向?非常感谢,布雷特 最佳答案 using(System.Drawing.Imagesrc=System.Drawing.Image.FromFile("picture.jpg")){using(Bitmapbmp=newBitm
我想在选项卡标题中放置一个图标,这样this看起来像this. 最佳答案 您可以通过这种方式在VS设计器中执行此操作:将ImageList添加到您的表单。将TabControl的ImageList属性设置为包含图标的ImageList。将TabControl中每个TabPage的ImageIndex或ImageKey属性设置为您想要显示的图像。如果您想在代码中完成所有操作,请按照以下说明进行操作。usingSystem.Drawing;usingSystem.Windows.Forms;publicclassForm1{public
我使用以下代码将PictureBox中的图像转换为位图:bmp=(Bitmap)pictureBox2.Image;但我得到的结果是bmp=null。谁能告诉我该怎么做? 最佳答案 AspermyunderstandingyourhavenotassignedPictureBox'sImageproperty,sothatitisreturningnullontypecast.PictureBoxpropertyautomaticallyconverttheImageformatandifyouseethetooltiponImag