Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 我可以使用libjpeg将jpeg解压缩的输出设置为一定的宽度和高度吗?_C_Image Processing_Libjpeg - Fatal编程技术网

C 我可以使用libjpeg将jpeg解压缩的输出设置为一定的宽度和高度吗?

C 我可以使用libjpeg将jpeg解压缩的输出设置为一定的宽度和高度吗?,c,image-processing,libjpeg,C,Image Processing,Libjpeg,我想解码一个jpeg图像,我正在使用libjpeg进行解码。 流程是: 输入图像->选项1.调整大小+解码,选项2.解码+调整大小->输出 在上述流程中,我应该选择什么选项 是否可以将输出解压缩图像的大小调整为特定的宽度和高度,例如416x416 旁注:在查看文档时,我遇到了参数output_width和output_height,我可以修改这些参数吗? 我所指的文件: 行:631-641如果不先解码,就无法调整JPEG的大小。所以选择2是你唯一的选择。使用libjpeg解码后,需要调整图像大小

我想解码一个jpeg图像,我正在使用libjpeg进行解码。 流程是: 输入图像->选项1.调整大小+解码,选项2.解码+调整大小->输出

在上述流程中,我应该选择什么选项

是否可以将输出解压缩图像的大小调整为特定的宽度和高度,例如416x416

旁注:在查看文档时,我遇到了参数output_width和output_height,我可以修改这些参数吗? 我所指的文件:
行:631-641

如果不先解码,就无法调整JPEG的大小。所以选择2是你唯一的选择。使用libjpeg解码后,需要调整图像大小。您需要自己编写一个算法,或者使用另一个库。libjpeg不会这样做


如果要将其存储为新大小,可以再次使用libjpeg对生成的图像进行编码。在这种情况下,您可以(并且必须)设置
output\u width
output\u height
。这实际上不会改变大小-它会告诉libjpeg您要编码的图像有多大。

是的,您可以在解压缩图像时缩放图像,但只能按其真实尺寸的倍数(或子倍数)进行缩放

不管怎样,它还是有用的,我就是这样用的。我想生成更大图片的缩影(拇指),所以我选择了可用的最小尺寸;输出更小,内存更少,为了调整大小需要处理的像素更少,根据情况,甚至解码步骤也可以更快

我手头没有这些消息来源,但我今晚可以搜索以提供更多细节

--更新-- 在我的旧资料(pascal)中,我发现:

  cinfo.scale_num := 1;
  cinfo.scale_denom := 1;   { 1:1 scaling }
  ...
  cinfo.two_pass_quantize := TRUE;

  { Step 5: Start decompressor }

  jpeg_start_decompress(@cinfo);
如您所见,解压时应用了缩放功能;就我所记得的,当要求原始图像的1/2、1/4、1/8等等时,它非常有效

在另一个项目中,我发现:

  sc := round(width/IconRect.right/(fmOptions.cbThumbQuality.ItemIndex+1));
  if sc>ord(jsEighth) then sc := ord(jsEighth);
  scale := TJpegScale(sc);
上面的代码片段计算了原始图像缩小多少以获得“图标”(或缩影)宽度,但将缩放限制为1/8:我记得,但我不确定,这个限制是否来自jpeg库。另一方面,jpeg库已经发展,也许它现在有了更多的功能

因此,总而言之,您可以设置缩放模式,但不能设置最终尺寸;设置比例后,输出宽度将反映最终宽度,这对于为库的解压缩例程分配内存是必需的

希望能有帮助