程序中关于图片的使用问题!

laza 2001-02-02 09:01:00
程序中使用图片,能突出程序主题、好看、使程序和用户交互方便。但也使得程序变得很大。为了使程序变小,就要将图片整理为资源文件。如果我不用资源文件而用image控件动态装载,这样有什么不好?这样的弊端是什么?
另外有没有其他更好的解决方法?
...全文
171 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ether 2001-02-03
  • 打赏
  • 举报
回复
静态数组的安全性怎么会有安全问题? :)
静态数组的速度通常也比反复打开图片文件快,但如果文件量很大(例如几十兆以上),
还是分开好。
laza 2001-02-02
  • 打赏
  • 举报
回复
to: ether Thank。这样不安全,也不方便。

我想把图片文件全都放到一个路径下,程序跑起来装进去。我看别人没这么做的,这样有什么不好?
把资源做成动态联结库也是个办法。
还有其它有更好的吗?
gaoql 2001-02-02
  • 打赏
  • 举报
回复
1。动态加载也不错啊,只是如果对方机器配置较低的话,程序启动时会稍慢的。
2。用jpg或者Gif的图象,jpg格式delphi是直接支持的,而gif图象需另外的控件,
不过CSDN里有的,你可以搜索一下的。
ether 2001-02-02
  • 打赏
  • 举报
回复
资源文件是BMP格式的,目标程序会比较大。可以用静态数组,使用JPG/GIF等支持
压缩的方式,动态装载到Image中。
const
ArrayLen = 123456; // MyJpg.jpg实际文件长度
var
OutBuf : packed array [0..ArrayLen-1] of Byte = (
{$INCLUDE MyJpg.Jpg.dmp}
);
MyJpg.Jpg.dmp是dump出的内容,可以用程序生成。例如:
$4D,$5A,$50,$00,$02,$00,$00,$00,$04,$00,$0F,$00,$FF,$FF,$00,$00,
$B8,$00,$00,$00,$00,$00,$00,$00,$40,$00,$1A,$00,$00,$00,$00,$00,
...

有了这个静态数组,就没问题了。 :)
当然,aspack等压缩exe文件的工具也可帮上忙。
halfdream 2001-02-02
  • 打赏
  • 举报
回复
呵,安全问题?图片多了同静态数组有什么关系?
你觉得需要首要解决的问题是什么?
图片也可以用JPG格式作为资源加入EXE或DLL。
图片文件放在同一个目录下其实也算比较常见吧。有不少游戏就是这样做的,
有的仅仅是直接将BMP文件改个名字,也有则用自己专门文件格式。
反复创建的那些图片你还是作为资源好些。
laza 2001-02-02
  • 打赏
  • 举报
回复
ether:
We 程序中有很多图片,超过20张,大小不一。是大程序,程序还算耗资源。
总觉得用图片多了静态数组不安全。我说不安全是因为我没这样做过,也没测过--我妄下结论不好意思!
您的这个方法影响速度吗?很多带图片(都是小图片)的窗体动态创建,有的还要反复创建。如果耗时就不好说了。
ether 2001-02-02
  • 打赏
  • 举报
回复
前面提的方法您认为有什么安全问题呢?
AcdSee可以说就是“动态加载”,也可以。如果是大程序,分开到不同文件、
目录好。如果是小工具,用一个文件搞定不更好吗?

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧