modifiy jpeg img_n fix
switch from fopen to fopen_s on later MSVCs
This commit is contained in:
parent
70de0adb28
commit
a2b9aa8d06
31
stb_image.h
31
stb_image.h
@ -189,12 +189,6 @@
|
|||||||
|
|
||||||
|
|
||||||
#ifndef STBI_NO_STDIO
|
#ifndef STBI_NO_STDIO
|
||||||
|
|
||||||
#if defined(_MSC_VER) && _MSC_VER >= 1400
|
|
||||||
#define _CRT_SECURE_NO_WARNINGS // suppress warnings about fopen()
|
|
||||||
#pragma warning(push)
|
|
||||||
#pragma warning(disable:4996) // suppress even more warnings about fopen()
|
|
||||||
#endif
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#endif // STBI_NO_STDIO
|
#endif // STBI_NO_STDIO
|
||||||
|
|
||||||
@ -553,7 +547,6 @@ static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp);
|
|||||||
|
|
||||||
static unsigned char *stbi_load_main(stbi__context *s, int *x, int *y, int *comp, int req_comp)
|
static unsigned char *stbi_load_main(stbi__context *s, int *x, int *y, int *comp, int req_comp)
|
||||||
{
|
{
|
||||||
s->img_n = 0;
|
|
||||||
if (stbi__jpeg_test(s)) return stbi__jpeg_load(s,x,y,comp,req_comp);
|
if (stbi__jpeg_test(s)) return stbi__jpeg_load(s,x,y,comp,req_comp);
|
||||||
if (stbi__png_test(s)) return stbi__png_load(s,x,y,comp,req_comp);
|
if (stbi__png_test(s)) return stbi__png_load(s,x,y,comp,req_comp);
|
||||||
if (stbi__bmp_test(s)) return stbi__bmp_load(s,x,y,comp,req_comp);
|
if (stbi__bmp_test(s)) return stbi__bmp_load(s,x,y,comp,req_comp);
|
||||||
@ -575,9 +568,23 @@ static unsigned char *stbi_load_main(stbi__context *s, int *x, int *y, int *comp
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifndef STBI_NO_STDIO
|
#ifndef STBI_NO_STDIO
|
||||||
|
|
||||||
|
FILE *stbi__fopen(char const *filename, char const *mode)
|
||||||
|
{
|
||||||
|
FILE *f;
|
||||||
|
#if _MSC_VER >= 1400
|
||||||
|
if (0 != fopen_s(&f, filename, "rb"))
|
||||||
|
f=0;
|
||||||
|
#else
|
||||||
|
f = fopen(filename, "rb");
|
||||||
|
#endif
|
||||||
|
return f;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
STBIDEF unsigned char *stbi_load(char const *filename, int *x, int *y, int *comp, int req_comp)
|
STBIDEF unsigned char *stbi_load(char const *filename, int *x, int *y, int *comp, int req_comp)
|
||||||
{
|
{
|
||||||
FILE *f = fopen(filename, "rb");
|
FILE *f = stbi__fopen(filename, "rb");
|
||||||
unsigned char *result;
|
unsigned char *result;
|
||||||
if (!f) return stbi__errpuc("can't fopen", "Unable to open file");
|
if (!f) return stbi__errpuc("can't fopen", "Unable to open file");
|
||||||
result = stbi_load_from_file(f,x,y,comp,req_comp);
|
result = stbi_load_from_file(f,x,y,comp,req_comp);
|
||||||
@ -645,8 +652,8 @@ float *stbi_loadf_from_callbacks(stbi_io_callbacks const *clbk, void *user, int
|
|||||||
#ifndef STBI_NO_STDIO
|
#ifndef STBI_NO_STDIO
|
||||||
float *stbi_loadf(char const *filename, int *x, int *y, int *comp, int req_comp)
|
float *stbi_loadf(char const *filename, int *x, int *y, int *comp, int req_comp)
|
||||||
{
|
{
|
||||||
FILE *f = fopen(filename, "rb");
|
|
||||||
float *result;
|
float *result;
|
||||||
|
FILE *f = stbi__fopen(filename, "rb");
|
||||||
if (!f) return stbi__errpf("can't fopen", "Unable to open file");
|
if (!f) return stbi__errpf("can't fopen", "Unable to open file");
|
||||||
result = stbi_loadf_from_file(f,x,y,comp,req_comp);
|
result = stbi_loadf_from_file(f,x,y,comp,req_comp);
|
||||||
fclose(f);
|
fclose(f);
|
||||||
@ -683,7 +690,7 @@ int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len)
|
|||||||
#ifndef STBI_NO_STDIO
|
#ifndef STBI_NO_STDIO
|
||||||
STBIDEF int stbi_is_hdr (char const *filename)
|
STBIDEF int stbi_is_hdr (char const *filename)
|
||||||
{
|
{
|
||||||
FILE *f = fopen(filename, "rb");
|
FILE *f = stbi__fopen(filename, "rb");
|
||||||
int result=0;
|
int result=0;
|
||||||
if (f) {
|
if (f) {
|
||||||
result = stbi_is_hdr_from_file(f);
|
result = stbi_is_hdr_from_file(f);
|
||||||
@ -1624,6 +1631,7 @@ static int stbi__process_frame_header(stbi__jpeg *z, int scan)
|
|||||||
static int decode_jpeg_header(stbi__jpeg *z, int scan)
|
static int decode_jpeg_header(stbi__jpeg *z, int scan)
|
||||||
{
|
{
|
||||||
int m;
|
int m;
|
||||||
|
z->s->img_n = 0;
|
||||||
z->marker = STBI__MARKER_none; // initialize cached marker to empty
|
z->marker = STBI__MARKER_none; // initialize cached marker to empty
|
||||||
m = stbi__get_marker(z);
|
m = stbi__get_marker(z);
|
||||||
if (!stbi__SOI(m)) return stbi__err("no stbi__SOI","Corrupt JPEG");
|
if (!stbi__SOI(m)) return stbi__err("no stbi__SOI","Corrupt JPEG");
|
||||||
@ -1835,7 +1843,6 @@ static stbi_uc *load_jpeg_image(stbi__jpeg *z, int *out_x, int *out_y, int *comp
|
|||||||
int n, decode_n;
|
int n, decode_n;
|
||||||
// validate req_comp
|
// validate req_comp
|
||||||
if (req_comp < 0 || req_comp > 4) return stbi__errpuc("bad req_comp", "Internal error");
|
if (req_comp < 0 || req_comp > 4) return stbi__errpuc("bad req_comp", "Internal error");
|
||||||
z->s->img_n = 0;
|
|
||||||
|
|
||||||
// load a jpeg image from whichever source
|
// load a jpeg image from whichever source
|
||||||
if (!decode_jpeg_image(z)) { stbi__cleanup_jpeg(z); return NULL; }
|
if (!decode_jpeg_image(z)) { stbi__cleanup_jpeg(z); return NULL; }
|
||||||
@ -4504,7 +4511,7 @@ static int stbi__info_main(stbi__context *s, int *x, int *y, int *comp)
|
|||||||
#ifndef STBI_NO_STDIO
|
#ifndef STBI_NO_STDIO
|
||||||
STBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp)
|
STBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp)
|
||||||
{
|
{
|
||||||
FILE *f = fopen(filename, "rb");
|
FILE *f = stbi__fopen(filename, "rb");
|
||||||
int result;
|
int result;
|
||||||
if (!f) return stbi__err("can't fopen", "Unable to open file");
|
if (!f) return stbi__err("can't fopen", "Unable to open file");
|
||||||
result = stbi_info_from_file(f, x, y, comp);
|
result = stbi_info_from_file(f, x, y, comp);
|
||||||
|
Loading…
Reference in New Issue
Block a user