易截截图软件、单文件、免安装、纯绿色、仅160KB

VB图像处理多次undo如何实现

做毕业论文的时候遇到的一个问题,请教豆瓣上的网友才有了答案。谢谢这位叫“异彩”的朋友。拿出来与大家分享。
  用VB做图像处理软件的毕业论文,遇到一个问题。加载一幅图片,用多个滤镜分别处理,想一步一步UNDO到最原始的图像,多次UNDO怎么实现?
 
 
参考方案:
 
如果想做到多次UNDO的话, 无疑是需要记录操作的每次步骤. 具体有两种形式:
  
  1, 在程序内存中存贮:
   在程序中建立栈(不知道你学过没学过栈, 如果没有的话可直接理解为数组), 栈满足了后进先出(LIFO)的的规则.
   在每次进行对图像的操作时, 都将上一幅图像备份(注意是深层备份, 如果是浅表引用的话是起不到效果的)到到这个栈中. 这样, 当执行UNDO时, 就可以从栈里面提取一个上一次保存的图像, 替代当前图像(并删除这个备份), 知道这个栈为空. 实现了多次UNDO.
   这种方法的特点是处理数度比较快, 但是也非常消耗内存.
  
  2. 在文件中存储:
   同样是备份每个操作前的图像,但这次是存储到硬盘上, 这需要你以一定的文件名规范(xxx_temp_1.jpg, xxx_temp_2.jpg依次等等)去防止重名的情况. 同样在UNDO的时候, 去加载上一个编号的文件, 并删除之, 这样也实现了多次UNDO.
  
   这种方法的特点自然是消耗内存少, 但是undo的处理速度没有前者快.
  
  3. 两种方法结合.
   略...
  
 


相关文档:

VB运行DOS命令生成文本文件并打开处理的问题

我用VB执行DOS命令,生成文本文件随即打开
但是由于文本文件生成需要一段时间,
还未等文件生成完毕VB就打开了这个文件
请问如何让程序等待DOS命令执行完毕再打开这个文本文件啊
最好还能加上一个等待的进度条显示文本文件的生成过程
代码如下:
Shell "cmd  /c dir /s /b e:\ dir.txt"
Open "dir.txt" ......

讨论VB中的结构体

讨论VB中的结构体[转载]
2009年10月20日 星期二 11:30
VB里面的结构体是一种WORD/DWORD对齐的结构体,这一点在编程中尤其要注意,如果是纯VB编程,则结构体的各个域如何排列可以基本不用关心,
而如果是调用API或者是调用其他的动态链接库,则很容易出问题,原因就在于:这些动态链接库是用C/C++写的,而大部分C/C++环境 ......

VB 长整型和字节数组的转换问题 (LongByte)

VB 长整型和字节数组的转换问题 (Long<>Byte)
Posted by JiaJia 17 March,2009 (0)Comment
用到的API声明:
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Long2Byte
Dim TempLng As Long
Dim TempBytes(0 To 3) As Byte ......

VB中的转换函数

Asc 函数
     
返回一个 Integer,代表字符串中首字母的字符代码。
语法:
Asc(string)
必要的 string 参数可以是任何有效的字符串表达式。如果 string 中没有包含任何字符,则会产生运行时错误。
说明:在非 DBCS 系统下,返回值范围为 0 – 255 。在 DBCS 系统下,则为 -32768 &ndas ......

VB检查合法IP地址

Public Function IsValidIPAddress(ByVal strIPAddress As String) As Boolean
    On Error GoTo Handler
    Dim varAddress As Variant, n As Long, lCount As Long
    varAddress = Split(strIPAddress, ".", , vbTextCompare)
    If IsArray(varAd ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号