Skip to content

Commit edd908a

Browse files
committed
cast half.bits() to si16 instead of si32, matches output of openexr-ht
1 parent c94f9a9 commit edd908a

File tree

1 file changed

+27
-67
lines changed

1 file changed

+27
-67
lines changed

src/apps/others/ojph_img_io.cpp

Lines changed: 27 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -2270,80 +2270,40 @@ namespace ojph {
22702270
return 0;
22712271
}
22722272

2273-
#if 0
2274-
if(cur_line < height)
2273+
switch (comp_num)
22752274
{
2276-
switch (comp_num)
2275+
case 0:
2276+
for (ui32 i = 0; i < width; i++)
22772277
{
2278-
case 0:
2279-
for (ui32 i = 0; i < width; i++)
2280-
{
2281-
line->i32[i] = (si32)(pixels[cur_line][i].r);
2282-
}
2283-
break;
2284-
case 1:
2285-
for (ui32 i = 0; i < width; i++)
2286-
{
2287-
line->i32[i] = (si32)(pixels[cur_line][i].g);
2288-
}
2289-
break;
2290-
case 2:
2291-
for (ui32 i = 0; i < width; i++)
2292-
{
2293-
line->i32[i] = (si32)(pixels[cur_line][i].b);
2294-
}
2295-
break;
2296-
case 3:
2297-
for (ui32 i = 0; i < width; i++)
2298-
{
2299-
line->i32[i] = (si32)(pixels[cur_line][i].a);
2300-
}
2301-
break;
2278+
line->i32[i] = (si16)pixels[cur_line][i].r.bits();
23022279
}
2303-
2304-
}
2305-
else
2306-
{
2307-
printf("cur_line = %d is greater than height = %d\n", cur_line, height);
2308-
}
2309-
#endif
2310-
if (cur_line < height)
2311-
{
2312-
switch (comp_num)
2280+
break;
2281+
case 1:
2282+
for (ui32 i = 0; i < width; i++)
23132283
{
2314-
case 0:
2315-
for (ui32 i = 0; i < width; i++)
2316-
{
2317-
line->i32[i] = (si32)(pixels[cur_line][i].r.bits());
2318-
}
2319-
break;
2320-
case 1:
2321-
for (ui32 i = 0; i < width; i++)
2322-
{
2323-
line->i32[i] = (si32)(pixels[cur_line][i].g.bits());
2324-
}
2325-
break;
2326-
case 2:
2327-
for (ui32 i = 0; i < width; i++)
2328-
{
2329-
line->i32[i] = (si32)(pixels[cur_line][i].b.bits());
2330-
}
2331-
break;
2332-
case 3:
2333-
for (ui32 i = 0; i < width; i++)
2334-
{
2335-
line->i32[i] = (si32)(pixels[cur_line][i].a.bits());
2336-
}
2337-
break;
2284+
line->i32[i] = (si16)pixels[cur_line][i].g.bits();
23382285
}
2339-
2340-
}
2341-
else
2342-
{
2343-
printf("cur_line = %d is greater than height = %d\n", cur_line, height);
2286+
break;
2287+
case 2:
2288+
for (ui32 i = 0; i < width; i++)
2289+
{
2290+
line->i32[i] = (si16)pixels[cur_line][i].b.bits();
2291+
}
2292+
break;
2293+
case 3:
2294+
for (ui32 i = 0; i < width; i++)
2295+
{
2296+
line->i32[i] = (si16)pixels[cur_line][i].a.bits();
2297+
}
2298+
break;
2299+
default:
2300+
fprintf(stderr, "ERROR in file %s on line %d in function %s:\n comp_num = %d, this software currently only supports num_comps = 1-4\n",
2301+
__FILE__, __LINE__, __FUNCTION__, comp_num);
2302+
return 0;
2303+
break;
23442304
}
23452305

2346-
if (comp_num == 0)
2306+
if (comp_num == (num_comps-1))
23472307
{
23482308
cur_line++;
23492309
}

0 commit comments

Comments
 (0)