游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1890|回复: 6

如何存储图片

[复制链接]

37

主题

171

帖子

177

积分

注册会员

Rank: 2

积分
177
发表于 2006-1-22 14:41:00 | 显示全部楼层 |阅读模式
我把一个图片读入一个System.Drawing.Image的变量
对其进行了一系列的操作之后又用这个变量的save方法存回刚才那个文件的位置时报了"本文件正被使用"
不知应该如何处理?

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
发表于 2006-1-22 19:48:00 | 显示全部楼层

Re:如何存储图片

你是不是要把屏幕上的图保存到电脑的VB程序?

37

主题

171

帖子

177

积分

注册会员

Rank: 2

积分
177
 楼主| 发表于 2006-1-22 21:47:00 | 显示全部楼层

Re:如何存储图片

不是,我是从一个文件里把图片读出来之后修改然后再存回原来的位置,这时报错说不能存,我估计是我那个文件还在被VB使用着.

26

主题

537

帖子

537

积分

高级会员

Rank: 4

积分
537
发表于 2006-1-23 09:40:00 | 显示全部楼层

Re:如何存储图片

用流试试

Dim Img As System.Drawing.Image
Dim FS As New FileStream(Application.StartupPath & "\a.bmp", FileMode.Open)
Img = New System.Drawing.Bitmap(FS)
......
Img.Save(FS, System.Drawing.Imaging.ImageFormat.Bmp)

37

主题

171

帖子

177

积分

注册会员

Rank: 2

积分
177
 楼主| 发表于 2006-1-23 13:31:00 | 显示全部楼层

Re:如何存储图片

我想这样应该可以,可是这样的话当我读出文件之后,我的那个文件还是处于打开的状态,
我是想把图像读出来之后就把文件关闭,那样可以吗?

37

主题

171

帖子

177

积分

注册会员

Rank: 2

积分
177
 楼主| 发表于 2006-1-23 14:11:00 | 显示全部楼层

Re:如何存储图片

刚才编了如下这个类,到是基本实现了功能,可是这么做的话会不会影响速度呀?
Imports System
Imports System.Drawing
Imports System.IO

Public Class PictureManage

    Public Shared Function LoadImg(ByVal FileName As String) As Image
        Dim BR As BinaryReader

        BR = New BinaryReader(IO.File.OpenRead(FileName))
        Dim Ptream As New MemoryStream(BR.ReadBytes(BR.BaseStream.Length))
        BR.Close()
        Dim img As System.Drawing.Image
        img = Image.FromStream(Ptream)
        Return img
    End Function

End Class

20

主题

451

帖子

470

积分

中级会员

Rank: 3Rank: 3

积分
470
发表于 2006-1-23 17:05:00 | 显示全部楼层

Re:如何存储图片

不会,流文件实际上是个指针~
你同样可以将bmp读入一个byte(),然后创建一个memorystream,再创建image,创建image以后那个memorystream就可以dispose掉了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-23 08:02

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表