gpt4 book ai didi

c - 不是 JPEG 文件 : Starts with 0x00 0x00

转载 作者:行者123 更新时间:2023-11-30 17:44:30 28 4
gpt4 key购买 nike

我正在尝试使用 jpeg-6b 库读取工作 JPEG 文件,并围绕该库制作包装器。

当我有一个动态图像时,它可以正常工作,但是当我尝试将一个静态图像形成一个文件时,它不起作用,并将此错误显示为“不是 JPEG 文件:以 0x00 0x00 开头并过早结束文件” 。我不确定问题出在哪里,但我认为问题出在我传递的图像指针上。但我正在尝试读取指针值,它会打印 JPEG 文件中的正确值。

这是代码片段

char *image_jpeg;
char *entries;
FILE *fd;
fd = fopen("abc.jpg", "r");
fseek(fd, 0, SEEK_END);
file_size = ftell(fd);
rewind(fd);

image_jpeg = malloc(sizeof(char) * file_size);
fread(image_jpeg, file_size, 1, fd);
printf("file_size %d",file_size);
fclose(fd);


printf("%x\n", image_jpeg[0] & 0xff);
printf("%x\n", image_jpeg[1] & 0xff);
printf("%x\n", image_jpeg[2] & 0xff);
printf("%x\n", image_jpeg[3] & 0xff);

decompress_jpeg(&image_raw, &size_raw, &width, &height, &bpp, image_jpeg, file_size,jpeg_frac);

这是解压缩函数的片段,它可以通过相同的函数调用很好地处理动态图像数据。

int decompress_jpeg(char **dest, 
int *size,
int *width,
int *height,
int *bpp,
char *src,
int src_size,
int frac)
{
FILE *in = fmemopen(src, src_size, "rb");
JSAMPLE **buff;
int bytespp;
struct jpeg_decompress_struct cinfo;
struct jpeg_error_mgr jerr;

if (frac != 1 && frac != 2 && frac != 4) {
frac = 1;
// THODO warning
}

cinfo.err = jpeg_std_error(&jerr);
jpeg_create_decompress(&cinfo);
jpeg_stdio_src(&cinfo, in);
jpeg_read_header(&cinfo, TRUE);
....
.....
}

最佳答案

您将一个名为“image”的变量传递给 decompress_jpeg,但您将 jpeg 文件读入“image_jpeg”。

关于c - 不是 JPEG 文件 : Starts with 0x00 0x00,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19969242/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com