标题: [已解决] 请问,这种图画循环播放的情况,要不要进行图片释放呢? [打印本页]
作者: zzz19760225 时间: 2024-9-9 19:43 标题: [已解决] 请问,这种图画循环播放的情况,要不要进行图片释放呢?
本帖最后由 zzz19760225 于 2024-9-10 11:09 编辑
C语言找播放gif动图,没结果,就找了用下层文件夹代替的路子,简单简易。
但是对图片循环无限播放,是否需要清除这些播放的图片内容,不懂啊。
求解:
这种模仿gif动图的模式,需不需要释放动作?- #include <stdio.h>
- #include <stdlib.h>
- #include <conio.h>
- #include <windows.h>
- #include <graphics.h>
-
- int main() {
- initgraph(640, 480);
-
- char filePath[1024]; // 文件路径数组
- int n = 1;
-
- while (1) {
-
- sprintf(filePath, "%s\\%d.png", "李寻欢", n);//本文件夹里下一层文件夹“李寻欢”
- IMAGE img;
- loadimage(&img, filePath,50,50);//图片的大小
- putimage(20, 30, &img); //图片的竖横量
- //freeimage(&img); // 释放图片资源
- //destroyimage(&img); // 释放图片资源
- //d:\dos\c\a1.cpp(19) : error C2065: 'destroyimage' : undeclared identifier
- //错误 C2065 表示 'destroyimage' 标识符未声明。
- //这意味着编译器在处理源文件 d:\dos\c\a1.cpp 的第 19 行时,找不到名为 'destroyimage' 的函数或变量。
- Sleep(200);
- n = (n % 4) + 1; //递增图片索引, 假设文件名是1.png, 2.png, ..., 假设最多有4张图片
-
- }
-
- closegraph();
- return 0;
- }
复制代码
作者: Five66 时间: 2024-9-9 22:41
不怕占用资源过多卡顿或奔溃或内存泄露之类的话就可以不释放,而且这样每读一次就释放一次很可能很影响性能的,建议一次性就将所有图片读取进来,然后显示,完后再一次性释放所有图片
作者: zzz19760225 时间: 2024-9-10 08:01
本帖最后由 zzz19760225 于 2024-9-10 08:02 编辑
还释放不了呢!
百度AI“easyx如何释放载入的图片”:- 在EasyX图形库中,释放载入的图片通常不需要显式地进行,因为EasyX在处理图像时采用的是引用计数机制。这意味着,当你将图像加载到一个IMAGE对象中时,该图像数据实际上是被EasyX库所管理的,而不是由你的程序直接控制。因此,你不需要(也不能)直接释放图像数据。当你不再需要使用该IMAGE对象时,只要确保没有其他变量引用它,EasyX库便会在适当的时候自动管理图像数据的释放。
-
- 在EasyX中处理图像的基本步骤通常包括:
-
- 声明一个IMAGE对象来存储图像数据。
- 使用loadimage函数将图像加载到这个IMAGE对象中。
- 在需要的地方使用putimage或其他图形操作函数来显示或处理图像。
- 在这个过程中,图像数据的管理完全由EasyX库负责。当你不再需要这个IMAGE对象时,只需确保没有其他变量引用它,然后让变量离开其作用域即可。EasyX会自动处理不再使用的图像数据的释放。因此,你不需要(也不能)手动释放这些图像数据
复制代码
不过也算是好事吧,省事了。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |