Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 在打开的文件上保存图像时,GDI+;_Vb.net_Image_Gdi - Fatal编程技术网

Vb.net 在打开的文件上保存图像时,GDI+;

Vb.net 在打开的文件上保存图像时,GDI+;,vb.net,image,gdi,Vb.net,Image,Gdi,我的代码有问题,我正在尝试为我的程序制作一个简单的验证码。我第一次运行sub时,它工作正常,我猜是因为文件在我的程序中没有“打开”。第二次我得到GDI+错误。我敢肯定这是一个问题,因为位图第二次被锁定,我只是有点卡住了 Sub-generatePasswordImage(密码为字符串) “这就是我们要在上面写文字的图像。 Dim stringMasterImageName为String=Application.StartupPath+“\MasterImage.jpg” Dim bitmapIm

我的代码有问题,我正在尝试为我的程序制作一个简单的验证码。我第一次运行sub时,它工作正常,我猜是因为文件在我的程序中没有“打开”。第二次我得到GDI+错误。我敢肯定这是一个问题,因为位图第二次被锁定,我只是有点卡住了

Sub-generatePasswordImage(密码为字符串)
“这就是我们要在上面写文字的图像。
Dim stringMasterImageName为String=Application.StartupPath+“\MasterImage.jpg”
Dim bitmapImage As Bitmap=新系统.Drawing.Bitmap(stringMasterImageName)
Dim bitmapMasterImage As Bitmap=新系统.绘图.位图(bitmapImage,新大小(400150))
Dim graphicsMasterImage As Graphics=Graphics.FromImage(位图主图像)
'根据坐标设置路线
Dim stringformatWriteTextFormat As StringFormat=新StringFormat()
stringformatWriteTextFormat.Alignment=StringAlignment.Center
'执行一些旋转效果
作为System.Random的Dim生成器=新System.Random()
将旋转调整为整数=生成器。下一步(-10,5)
图形图像旋转变换(旋转)
Dim centerImgWidth As Integer=生成器.Next(CInt(graphicsMasterImage.VisibleClipBounds.Size.Width/3),CInt(graphicsMasterImage.VisibleClipBounds.Size.Width/2))
Dim centerImgHiehgt As Integer=生成器.Next(CInt(graphicsMasterImage.VisibleClipBounds.Size.Height/3),CInt(graphicsMasterImage.VisibleClipBounds.Size.Height/2))
'设置字体颜色
Dim colorStringColor作为颜色=System.Drawing.Color.Black
graphicsMasterImage.DrawString(密码,新字体(“Tahoma”,14,FontStyle.Bold)_
新SolidBrush(colorStringColor)、新点(centerImgWidth、centerImgHiehgt)、stringformatWriteTextFormat)
Dim stringOutPutFileName为String=Application.StartupPath+“\Pass.jpg”
bitmapMasterImage.Save(stringOutPutFileName、System.Drawing.Imaging.ImageFormat.Jpeg)
bitmapMasterImage.Dispose()
bitmapImage.Dispose()
端接头

这几乎总是意味着您在文件上打开了一个图像或存在基本的访问问题<代码>应用程序。如果这是
程序文件…
我已经编辑了你的标题,那么StartupPath可能会有问题。请看“”,其中的共识是“不,他们不应该”。谢谢,我来看看这个链接。由于某种原因,位图在第一次保存后似乎仍被锁定。如果在某个位置显示了上一个图像(或仅打开了一个图像),则无法保存为相同的文件名