• 全部
  • 语言基础/算法/系统设计
  • 数据库相关
  • 图形处理/多媒体
  • 网络通信/分布式开发
  • VCL组件开发及应用
  • Windows SDK/API
  • 问答

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

laza 2001-02-02 09:01:00
程序中使用图片,能突出程序主题、好看、使程序和用户交互方便。但也使得程序变得很大。为了使程序变小,就要将图片整理为资源文件。如果我不用资源文件而用image控件动态装载,这样有什么不好?这样的弊端是什么?
另外有没有其他更好的解决方法?
...全文
132 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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可以说就是“动态加载”,也可以。如果是大程序,分开到不同文件、
目录好。如果是小工具,用一个文件搞定不更好吗?
回复
相关推荐
发帖
Delphi
创建于2007-08-02

4875

社区成员

Delphi 开发及应用
申请成为版主
帖子事件
创建了帖子
2001-02-02 09:01
社区公告
暂无公告