找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 8388|回复: 2

[已解决] 请问,这种图画循环播放的情况,要不要进行图片释放呢?

[复制链接]
发表于 2024-9-9 19:43:32 | 显示全部楼层 |阅读模式
本帖最后由 zzz19760225 于 2024-9-10 11:09 编辑

C语言找播放gif动图,没结果,就找了用下层文件夹代替的路子,简单简易。
但是对图片循环无限播放,是否需要清除这些播放的图片内容,不懂啊。
求解:
这种模仿gif动图的模式,需不需要释放动作?

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <graphics.h>

  6. int main() {
  7.     initgraph(640, 480);

  8.     char filePath[1024];            // 文件路径数组
  9.     int n = 1;              

  10.     while (1) {
  11.         
  12.         sprintf(filePath, "%s\\%d.png", "李寻欢", n);//本文件夹里下一层文件夹“李寻欢”
  13.         IMAGE img;
  14.         loadimage(&img, filePath,50,50);//图片的大小
  15.         putimage(20, 30, &img);         //图片的竖横量
  16.       //freeimage(&img);                // 释放图片资源
  17.       //destroyimage(&img);  // 释放图片资源
  18.           //d:\dos\c\a1.cpp(19) : error C2065: 'destroyimage' : undeclared identifier
  19.           //错误 C2065 表示 'destroyimage' 标识符未声明。
  20.                   //这意味着编译器在处理源文件 d:\dos\c\a1.cpp 的第 19 行时,找不到名为 'destroyimage' 的函数或变量。
  21.         Sleep(200);
  22.         n = (n % 4) + 1; //递增图片索引, 假设文件名是1.png, 2.png, ..., 假设最多有4张图片

  23.     }

  24.     closegraph();
  25. return 0;
  26. }
复制代码
发表于 2024-9-9 22:41:11 | 显示全部楼层
不怕占用资源过多卡顿或奔溃或内存泄露之类的话就可以不释放,而且这样每读一次就释放一次很可能很影响性能的,建议一次性就将所有图片读取进来,然后显示,完后再一次性释放所有图片

评分

参与人数 1技术 +1 收起 理由
zzz19760225 + 1 嗯,基本操作,相对效率,健康结构的代码, ...

查看全部评分

 楼主| 发表于 2024-9-10 08:01:02 | 显示全部楼层
本帖最后由 zzz19760225 于 2024-9-10 08:02 编辑

还释放不了呢!
百度AI“easyx如何释放载入的图片”:

  1. 在EasyX图形库中,释放载入的图片通常不需要显式地进行,因为EasyX在处理图像时采用的是引用计数机制。这意味着,当你将图像加载到一个IMAGE对象中时,该图像数据实际上是被EasyX库所管理的,而不是由你的程序直接控制。因此,你不需要(也不能)直接释放图像数据。当你不再需要使用该IMAGE对象时,只要确保没有其他变量引用它,EasyX库便会在适当的时候自动管理图像数据的释放。

  2. 在EasyX中处理图像的基本步骤通常包括:

  3. 声明一个IMAGE对象来存储图像数据。
  4. 使用loadimage函数将图像加载到这个IMAGE对象中。
  5. 在需要的地方使用putimage或其他图形操作函数来显示或处理图像。
  6. 在这个过程中,图像数据的管理完全由EasyX库负责。当你不再需要这个IMAGE对象时,只需确保没有其他变量引用它,然后让变量离开其作用域即可。EasyX会自动处理不再使用的图像数据的释放。因此,你不需要(也不能)手动释放这些图像数据&#8204;
复制代码
不过也算是好事吧,省事了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 00:58 , Processed in 0.017488 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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