当前位置:编程学习 > C#/ASP.NET >>

如何生成给定大小的JPG图片

看了看jpg的数据结构,很复杂的样子。有大神有比较简单的方法吗?
得到的图片大小不需要太精确。 --------------------编程问答-------------------- 你说的大小是文件字节的大小?还是像素?

前者很难计算,除非允许多次尝试,因为jpg是有损压缩,压缩比可变。 --------------------编程问答-------------------- 指定压缩质量 --------------------编程问答--------------------
public ImageCodecInfo GetCodecInfo(string mimeType)
        {
            ImageCodecInfo[] CodecInfo = ImageCodecInfo.GetImageEncoders();
            foreach (ImageCodecInfo ici in CodecInfo)
            {
                if (ici.MimeType == mimeType) return ici;
            }
            return null;
        }
        public bool KiSaveAsJPEG(Bitmap bmp, string FileName, int Qty)//设置保存压缩比率
        {
            try
            {
                EncoderParameter p;
                EncoderParameters ps;

                ps = new EncoderParameters(1);

                p = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, Qty);
                ps.Param[0] = p;

                bmp.Save(FileName, GetCodecInfo("image/jpeg"), ps);

                return true;
            }
            catch
            {
                return false;
            }

        }
 楼主如果指的是压缩率 这段代码可以帮助你  --------------------编程问答--------------------
引用 3 楼 kudiao119 的回复:
C# code?12345678910111213141516171819202122232425262728293031public ImageCodecInfo GetCodecInfo(string mimeType)        {            ImageCodecInfo[] CodecInfo = ImageCodecInfo.GetImageEn……



感谢2、3楼。压缩率这个我知道。
可能是我问的不太清楚:
我想要一个100kb的jpg,分辨率、压缩率都不在乎。
当压缩率为100,位深为24的时候,是否和相同像素bmp有个固定的换算率。有个大概数值就好。 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 4 楼 blackxulei 的回复:
引用 3 楼 kudiao119 的回复:C# code?12345678910111213141516171819202122232425262728293031public ImageCodecInfo GetCodecInfo(string mimeType)        {            ImageCodecInfo[] CodecInfo = Imag……


没有固定倍率的 ,与颜色分布,几何形状都有关,自己转多几幅不就知道了
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,