dongyu3967 2018-11-29 10:48
浏览 142

重采样图像的尺寸实际上是否比非重采样图像小?

When I started working with images in PHP, I learned images should be resized and resampled to reduce file size. I'm taking resizing here to be reducing an image height and width without intentionally altering image quality and resampling to be resizing and intentionally altering image quality with imageconvolution() function. When comparing a group of images of the same dimensions, one resampled with PHP, the other not, I noticed not-so-subtle differences in the file sizes. These are my findings for one set of images, and they were similar to the other sets:

Resampled and Resized Image:

  1. Dimensions: 550 * 366
  2. File Size: 25.19KB

Resized Image without Resampling:

  1. Dimensions: 550 * 366
  2. File Size: 20.89KB

Original Image:

  1. Dimensions: 4896 * 3264
  2. File Size: 1.1MB

The resampled image is 4.3KB bigger than the non-resampled image. This difference is relatively small, but if the resampled image turns out to be greater than the non-resampled image, what then is the importance of resampling? Is this a rare occurrence? Does this only happen to jpeg files? N/B: I worked with imagecreatefromjpeg, imagecreatetruecolor, imagecopyresampled, and imageconvolution (when resampling).

  • 写回答

1条回答 默认 最新

  • drk49438 2018-11-29 10:58
    关注

    Changing the size of an image always requires resampling in some form or another. See the definition of resampling at Wikipedia: https://en.wikipedia.org/wiki/Image_scaling#Mathematical. The difference in the final file size is probably entirely due to the different scaling techniques producing visually different images, which compress differently by the final JPEG algorithm. E.g. the larger file contains more details or graininess, which doesn't compress as well. You will have to choose which resizing algorithm and compression format you prefer and balance visual quality vs. file size of the end result.

    评论

报告相同问题?

悬赏问题

  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line