解决方案 »

  1.   

    应用里对图片的宽高处理如下: sourceWidth 就是原始的宽度 destinationWidth 就是目标的宽度。
    如果图片是普通的横版大小,就会控制其宽度为640,如果是竖版的图片。则控制其高度为640。但这两张图片都是横版的图片。缩放后都是640*480 int sourceWidth = image.getWidth();
    int sourceHeight = image.getHeight();
    if ((float) sourceWidth / destinationWidth > (float) sourceHeight
    / destinationHeight) {
    destinationHeight = (int) (destinationWidth * ((float) sourceHeight / sourceWidth));
    } else {
    destinationWidth = (int) (destinationHeight * ((float) sourceWidth / sourceHeight)); }
    源码编写方式不同是指哪个源码不同?两张图片走的是同一个方法。
      

  2.   

    我一直在猜测:会不会是大图与小图在压缩时候。像素越高的压缩比越大造成的这种情况呢!我测试了一张2468*3472分辨率,文件大小约800KB左右的图片,其生成的缩略文件比上面两张图片生成的都要大一些。并且这张图片就是普通A4纸印刷的单证信息打印出来的图片。不过其分辨率已经达到了300dpi。想是跟这个数值有关系的了。
      

  3.   

    BMP格式肯定缩小肯定不会变化
    肯定但是jpg等等一些格式那就不一定了,算法不同。
    你自己可以试验一下,将一个jpg的白图,和一个别的图片同等大小的jpg,图片占用内存肯定不一样。
    BMP图像就不一样了,他是每个点占多少个像素(具体看位图深度)
      

  4.   

    如果你保存的格式是JPG/JPEG格式
    很正常会出现这种情况,一副图片文件的大小取决以下几个因素
    1.像素分辨率
    2.图像格式,jpg与jpeg都会有差别,原因是jpeg是基于jpeg2000的小波变换压缩算法
    3.图像所包含的信息量,信息量越大,压缩率越低。
    如果我猜的没错,A,B图像肯定是B中包含了更多信息量。
    大家都散了吧!
      

  5.   

    你用的啥子图片格式?PNG、JPG、BMP?
    有些图片是经过有损压缩的,相同尺寸由于算法造成了实际的数据量大小不一样,比如JPG。
      

  6.   

    我写得的第一个程序,大家顶一下哦,http://jcloud.csdn.net/m/opus/opus/opus_zone?id=2296&project_id=612&product_type=10
      

  7.   

    觉得应该是B的不同色彩的种类比B要多,图片格式中一部分结构叫做调色板,里面记录了每张图片的不同色彩的色度(R,G,B),虽然压缩前,A图比B图要大,但是压缩后,因为A的不同色彩数目比B小,所以A图的调色板结构占得空间就比B的调色板空间要小。
    而图片在展示是,图片的数据格式部分记录的是该点颜色在调色板中的索引,当图片显示在屏幕上时,用对应的索引去调色板里找对应的(R,G,B)显示出来。
      

  8.   

    不知道你“解决”这个问题是指什么,如果要把图片大小变小,那可以采用一些图像增强的办法,用滤波器去掉图片中占比比较小的色彩种类,使图片中的色彩种类少一些,同时会牺牲一些图片的细节。比如,如果某色彩(R,G,B)只在图片中出现了1次,你就可以用最接近的其他(R,G,B)组合替换该组合,从而总体上减小图片调色板结构的大小。
      

  9.   

    look 
    http://www.didiling.com