mirror of
https://github.com/opencv/opencv.git
synced 2025-06-07 17:44:04 +08:00
SPNG integration warning fixes.
This commit is contained in:
parent
6ee71fee88
commit
70b87804cf
@ -521,7 +521,6 @@ int SPngEncoder::writeDataToBuf(void *ctx, void *user, void *dst_src, size_t len
|
||||
|
||||
bool SPngEncoder::write(const Mat &img, const std::vector<int> ¶ms)
|
||||
{
|
||||
int fmt;
|
||||
spng_ctx *ctx = spng_ctx_new(SPNG_CTX_ENCODER);
|
||||
FILE *volatile f = 0;
|
||||
int width = img.cols, height = img.rows;
|
||||
@ -558,11 +557,10 @@ bool SPngEncoder::write(const Mat &img, const std::vector<int> ¶ms)
|
||||
isBilevel = params[i + 1] != 0;
|
||||
}
|
||||
}
|
||||
fmt = channels == 1 ? SPNG_COLOR_TYPE_GRAYSCALE : channels == 3 ? SPNG_COLOR_TYPE_TRUECOLOR
|
||||
: SPNG_COLOR_TYPE_TRUECOLOR_ALPHA;
|
||||
|
||||
ihdr.bit_depth = depth == CV_8U ? isBilevel ? 1 : 8 : 16;
|
||||
ihdr.color_type = fmt;
|
||||
ihdr.color_type = (uint8_t)(channels == 1 ? SPNG_COLOR_TYPE_GRAYSCALE : channels == 3 ? SPNG_COLOR_TYPE_TRUECOLOR
|
||||
: SPNG_COLOR_TYPE_TRUECOLOR_ALPHA);
|
||||
ihdr.interlace_method = SPNG_INTERLACE_NONE;
|
||||
ihdr.filter_method = SPNG_FILTER_NONE;
|
||||
ihdr.compression_method = 0;
|
||||
@ -597,7 +595,7 @@ bool SPngEncoder::write(const Mat &img, const std::vector<int> ¶ms)
|
||||
ret = spng_encode_image(ctx, nullptr, 0, SPNG_FMT_PNG, SPNG_ENCODE_PROGRESSIVE);
|
||||
if (channels > 1)
|
||||
{
|
||||
int error;
|
||||
int error = SPNG_OK;
|
||||
if (ret == SPNG_OK)
|
||||
{
|
||||
if (depth == CV_16U)
|
||||
@ -659,7 +657,7 @@ bool SPngEncoder::write(const Mat &img, const std::vector<int> ¶ms)
|
||||
}
|
||||
else
|
||||
{
|
||||
int error;
|
||||
int error = SPNG_OK;
|
||||
for (int y = 0; y < height; y++)
|
||||
{
|
||||
error = spng_encode_row(ctx, img.data + y * img.step, width * channels * (depth == CV_16U ? 2 : 1));
|
||||
@ -711,17 +709,17 @@ void spngCvt_BGRA2Gray_8u_C4C1R(const uchar *bgra, int rgba_step,
|
||||
uchar *gray, int gray_step,
|
||||
cv::Size size, int _swap_rb)
|
||||
{
|
||||
int i;
|
||||
for (; size.height--; gray += gray_step)
|
||||
{
|
||||
double cBGR0 = 0.1140441895;
|
||||
double cBGR1 = 0.5869750977;
|
||||
double cBGR2 = 0.2989807129;
|
||||
|
||||
if (_swap_rb)
|
||||
std::swap(cBGR0, cBGR2);
|
||||
for (i = 0; i < size.width; i++, bgra += 4)
|
||||
for (int i = 0; i < size.width; i++, bgra += 4)
|
||||
{
|
||||
int t = cBGR0 * bgra[0] + 0.5869750977 * bgra[1] + cBGR2 * bgra[2];
|
||||
gray[i] = (uchar)t;
|
||||
gray[i] = cv::saturate_cast<uchar>(cBGR0 * bgra[0] + cBGR1 * bgra[1] + cBGR2 * bgra[2]);
|
||||
}
|
||||
|
||||
bgra += rgba_step - size.width * 4;
|
||||
@ -732,17 +730,17 @@ void spngCvt_BGRA2Gray_16u_CnC1R(const ushort *bgr, int bgr_step,
|
||||
ushort *gray, int gray_step,
|
||||
cv::Size size, int ncn, int _swap_rb)
|
||||
{
|
||||
int i;
|
||||
for (; size.height--; gray += gray_step)
|
||||
{
|
||||
double cBGR0 = 0.1140441895;
|
||||
double cBGR1 = 0.5869750977;
|
||||
double cBGR2 = 0.2989807129;
|
||||
|
||||
if (_swap_rb)
|
||||
std::swap(cBGR0, cBGR2);
|
||||
for (i = 0; i < size.width; i++, bgr += ncn)
|
||||
for (int i = 0; i < size.width; i++, bgr += ncn)
|
||||
{
|
||||
int t = cBGR0 * bgr[0] + 0.5869750977 * bgr[1] + cBGR2 * bgr[2];
|
||||
gray[i] = (ushort)t;
|
||||
gray[i] = (ushort)(cBGR0 * bgr[0] + cBGR1 * bgr[1] + cBGR2 * bgr[2]);
|
||||
}
|
||||
|
||||
bgr += bgr_step - size.width * ncn;
|
||||
|
Loading…
Reference in New Issue
Block a user