一组不同尺寸大小的图片如何存
一组不同尺寸大小的图片怎么存.
大小相同的可以存在ImageList里,那不同的呢.
保存成文件的时候希望可以保存成一个文件,加载到内存中用的时候可以按序号获取大小,并在bmp中显示出来.
------解决方案--------------------
大小不同的,要看你的需求,是缩放存成一个图片,还是分割成多个图片?
------解决方案--------------------
建个类从TImageList继承,重写Add开头的这些方法,在里面处理你要分隔图片的逻辑。重点就是如何分隔,自己考虑吧。
------解决方案--------------------
是分割图片,一张大图按什么坐标什么尺寸来切成小图
------解决方案--------------------
切割图片可以是真的切成多个物理文件,或者直接逻辑切割,只是记录下一章大图各个rect,显示时就显示这个rect就可以了。
比如说一个尺寸100*100的图片,用几个rect来分割它们
TRect r1,r2,r3,r4;
r1 = Rect(0,0,50,50); // left,top,right,bottom
r2 = Rect(50,0,100,50);
r3 = Rect(0,50,50,100);
r4 = Rect(50,50,100,100);
这样,就把这个100*100的大图分割成了4个50*50的小图,然后绘图时就只绘制这些rect。把这些rect放在数组里,删除“图像”时就删除这个rect就可以了,图片文件是不改动的。把分割的图保存成文件,也是用bitblt复制这些rect到个新bmp里,保存到文件就可以了。
实际上ImageList加载一张大图时应该就是被这样分割放到一个rect数组里的,得跟进它的源码来看,不过八九不离十。
------解决方案--------------------

比如说这些图标其实就是一个张图片而已,把它装入imagelist,imagelist会自动分割成多个小图标,就是用rect来分割,而不是真的把它们分割成多个图片文件。
Rect(0,0,16,16) 这是第一个16*16的图标区域,第二个就是Rect(16,0,16*2,16)...
------解决方案--------------------
分割的尺寸大小什么的,取决于你的实际情况,你跟进自己需求来考虑吧
大小相同的可以存在ImageList里,那不同的呢.
保存成文件的时候希望可以保存成一个文件,加载到内存中用的时候可以按序号获取大小,并在bmp中显示出来.
------解决方案--------------------
大小不同的,要看你的需求,是缩放存成一个图片,还是分割成多个图片?
------解决方案--------------------
建个类从TImageList继承,重写Add开头的这些方法,在里面处理你要分隔图片的逻辑。重点就是如何分隔,自己考虑吧。
------解决方案--------------------
是分割图片,一张大图按什么坐标什么尺寸来切成小图
------解决方案--------------------
切割图片可以是真的切成多个物理文件,或者直接逻辑切割,只是记录下一章大图各个rect,显示时就显示这个rect就可以了。
比如说一个尺寸100*100的图片,用几个rect来分割它们
TRect r1,r2,r3,r4;
r1 = Rect(0,0,50,50); // left,top,right,bottom
r2 = Rect(50,0,100,50);
r3 = Rect(0,50,50,100);
r4 = Rect(50,50,100,100);
这样,就把这个100*100的大图分割成了4个50*50的小图,然后绘图时就只绘制这些rect。把这些rect放在数组里,删除“图像”时就删除这个rect就可以了,图片文件是不改动的。把分割的图保存成文件,也是用bitblt复制这些rect到个新bmp里,保存到文件就可以了。
实际上ImageList加载一张大图时应该就是被这样分割放到一个rect数组里的,得跟进它的源码来看,不过八九不离十。
------解决方案--------------------
比如说这些图标其实就是一个张图片而已,把它装入imagelist,imagelist会自动分割成多个小图标,就是用rect来分割,而不是真的把它们分割成多个图片文件。
Rect(0,0,16,16) 这是第一个16*16的图标区域,第二个就是Rect(16,0,16*2,16)...
------解决方案--------------------
分割的尺寸大小什么的,取决于你的实际情况,你跟进自己需求来考虑吧