`
Blueromantic
  • 浏览: 3871 次
  • 性别: Icon_minigender_2
最近访客 更多访客>>
社区版块
存档分类
最新评论

保存重绘

阅读更多
                         有关文件保存(以画图板为例,添加重绘总结)
      文件保存的思想:文件保存是用“流”来完成的,一般是基于InputStream和     OutputStream这种字节的输入流和输出流。但由于单个字节进行传送效率很低,于是我们经常用BufferedInputStream, BufferedOutputStream和DataInputStream,DataOutputStream 这两种来来完成文件保存。在创建 BufferedInputStream, BufferedOutputStream 时,会创建一个内部缓冲区数组。在读取或跳过流中的字节时,可根据需要从包含的输入流再次填充该内部缓冲区,一次填充多个字节,从而能提高输入输出效率。DataInputStream,DataOutputStream这两种流主要用来读写指定的数据类型。
      先说对画图板的保存及重绘是利用了从屏幕上截取drawPanel在屏幕上所占区域的方法。即定义一个数组来存储每个像素点的坐标。首先我们要从屏幕中读取每个像素点,在这里我们用到了类Robot中的createScreenCapture方法。在利用这个方法的时候我们必须截取在屏幕上占据的区域,因此我们需要获取左上角的开始坐标及其宽和高。
      在进行画板保存时,先要定义输出流,在这里要用可包装称基本类型的DataOutputStream流,然后再对图片宽和高进行保存及遍历二维数组保存。
      打开的时候要创建输入流,仍旧使用基本类型的输入流,依次读入宽高,再遍历二维数组。再次给打开和保存按钮添加监听器,直接调用saveBit中的保存和打开方法就可以了。
注意事项:
○1我们在获取左上角坐标的时候,要注意获取的是相对的一个位置,如果使用了绝对的位置,重绘出来的图形会移位。
○2在重绘中二维数组中的下标与宽和高要对应正确,避免图像位置错误。
○3在流使用完毕后要及时关闭。对输出流还要进行清理。
○4什么时候要重绘要进行考虑(ispaint)。
○5注意对异常的捕获。
0
0
分享到:
评论

相关推荐

    能保存 重绘的画图工具

    在IT领域,开发一个能保存、重绘及具备多种图形绘制功能的画图工具是一项常见的任务,这通常涉及到图形用户界面(GUI)编程和图像处理技术。本项目名为“能保存 重绘的画图工具”,它实现了基本的画图功能,包括绘制...

    mfc做的画图程序,不能保存重绘,但是一些基本功能可以完成

    标题中的"mfc做的画图程序,不能保存重绘"意味着这个程序已经实现了基本的画图功能,如绘制线、点、圆、矩形和折线,但目前还不支持将用户的画作保存或重新加载以进行编辑。这通常涉及到图形数据的序列化和反序列化...

    简单的绘图软件,实现图形的保存与重绘

    在本文中,我们将深入探讨如何使用VC++(Visual C++)开发一个简单的绘图软件,该软件能够实现基本的绘图功能,如绘制自定义线条、矩形等图形,并允许用户保存和重绘这些图形。这个名为"MyEasyDraw"的项目是基于面向...

    MFC文档重绘级图形的保存

    本篇将深入探讨如何在MFC SDI应用中处理图形的重绘以及如何保存这些图形。 一、图形的重绘 1. `OnDraw`函数:MFC中的CView类是显示文档内容的视图类,它包含了`OnDraw`成员函数,这是进行图形绘制的核心。当视图...

    画布的重绘和保存

    "画布的重绘和保存"这个主题主要涉及如何在Android应用中使用Canvas进行动态绘制,并将结果保存为图像文件。下面将详细阐述相关知识点。 首先,我们来看画布(Canvas)的基本概念。Canvas是Android提供的一个类,...

    MFC解决窗口保存及重绘闪烁问题的一种比较好的方案 SolveFlashingAndRedraw框架 v1.0.2

    SolveFlashingAndRedraw框架是MFC解决窗口保存及重绘闪烁问题的一种比较好的方案(Win32解决方法类似)。 版本历史: v1.0.1 20091126 第一版本 v1.0.2 20091212 第二版本 1. 修改了部分变量的名字使其更符合其...

    MFC解决窗口保存及重绘闪烁问题的一种比较好的方案 SolveFlashingAndRedraw框架 v1.0.3

    SolveFlashingAndRedraw框架是MFC解决窗口保存及重绘闪烁问题的一种比较好的方案(Win32解决方法类似)。 版本历史: v1.0.1 20091126 第一版本 v1.0.2 20091212 第二版本 1. 修改了部分变量的名字使其更符合其...

    MFC解决窗口保存及重绘闪烁问题的一种比较好的方案 v1.0.5

    SolveFlashingAndRedraw框架是MFC解决窗口保存及重绘闪烁问题的一种比较好的方案(Win32解决方法类似)。 版本历史: v1.0.1 20091126 第一版本 v1.0.2 20091212 第二版本 1. 修改了部分变量的名字使其更符合其...

    窗体上做图,不怕重绘

    1. **重绘过程中的图形保存**:首先,我们需要在窗体初始化时,或者在首次绘制图形后,保存一个图形的副本。这可以通过创建一个`Bitmap`对象来完成,将窗体的当前视图作为源,将绘制的图形复制到`Bitmap`中。 2. **...

    MFC解决窗口保存及重绘闪烁问题的一种比较好的方案 v1.0.4

    SolveFlashingAndRedraw框架是MFC解决窗口保存及重绘闪烁问题的一种比较好的方案(Win32解决方法类似)。 版本历史: v1.0.1 20091126 第一版本 v1.0.2 20091212 第二版本 1. 修改了部分变量的名字使其更符合其...

    控件重绘 C# 轻松实现对窗体(Form)换肤

    在C#编程中,"控件重绘"是一项重要的技能,尤其对于开发具有美观界面的应用程序来说。本主题将深入探讨如何使用C#轻松实现窗体(Form)的换肤功能,让应用程序拥有个性化的外观。 首先,我们需要理解C#中的控件重绘...

    MFC解决窗口保存及重绘闪烁问题的一种比较好的方案 框架

    SolveFlashingAndRedraw 样例工程是MFC解决窗口保存及重绘闪烁问题的一种比较好的方案(Win32解决方法类似)。 运行步骤: 直接运行里面的程序,在窗口上任意拖拉鼠标画线,然后点击菜单栏的几个示范菜单项,然后...

    Redraw-graphics-preservation.rar_VS2010 界面_site:www.pudn.com

    这个项目很可能包含了源代码和其他相关资源,如“0925图形保存重绘”这个文件名,可能是一个源代码文件或者项目文档,用于展示具体实现过程。 在VS2010中,开发者可以利用Microsoft的MFC(Microsoft Foundation ...

    VC++ CEDIT控件重绘,插入背景图

    本文将详细讲解如何在VC++中重绘CEdit控件并插入背景图片,以实现更美观的用户界面。我们将使用EVC(Embedded Visual C++)或VS2008作为开发环境。 首先,理解CEdit控件的基本概念。CEdit是MFC(Microsoft ...

    ListCtrl重绘

    本篇将详细讲解如何在ListCtrl中实现重绘以及增加ComboBox选择项。 首先,我们需要理解ListCtrl的基本操作。ListCtrl通常通过插入列(InsertColumn)和插入项目(InsertItem)来设置结构。每个项目可以有多个子项,...

    《VC++深入详解》第11章 图形的保存和重绘

    《VC++深入详解》第11章主要探讨了在Windows编程中如何处理图形的保存、重绘以及坐标空间转换的问题。以下是对章节内容的详细解释: 1. **坐标空间和转换**: - **坐标空间**:在Windows编程中,坐标空间是用于...

    c#窗体美化,窗体重绘

    本教程将聚焦于如何使用C#实现窗体的重绘,特别是创建具有圆角的窗体。 首先,我们需要了解Windows Forms是.NET Framework提供的用于构建桌面应用程序的库,它包含各种控件和组件,允许开发者创建具有图形用户界面...

    DELPHI ListView重绘的例子

    在这个“DELPHI ListView重绘的例子”中,我们将深入探讨如何在DELPHI中自定义TListView的行为,特别是关于重绘的部分。 首先,`TListView`的重绘涉及到控件的视觉样式和项的绘制。在DELPHI中,你可以通过重写或...

    VB 子类化重绘ListBox

    子类化(Subclassing)是一种技术,允许开发者扩展或修改已有的控件功能,使其能够支持自定义的重绘操作。本文将详细介绍如何在VB中子类化ListBox控件,并实现自定义的重绘功能,以达到美化界面的目的。 首先,理解...

    重绘SSTAB.zip

    避免不必要的重绘,比如使用`BeginInvoke`或`Invalidate`来控制更新,以及利用缓存技术来保存已绘制的元素。 5. **响应式设计**:如果应用需要支持不同分辨率或高DPI环境,那么重绘代码需要考虑到这些因素,确保在...

Global site tag (gtag.js) - Google Analytics