github.com/cellofellow/gopkg@v0.0.0-20140722061823-eec0544a62ad/image/webp/libwebp/src/utils/alpha_processing.h (about)

     1  // Copyright 2013 Google Inc. All Rights Reserved.
     2  //
     3  // Use of this source code is governed by a BSD-style license
     4  // that can be found in the COPYING file in the root of the source
     5  // tree. An additional intellectual property rights grant can be found
     6  // in the file PATENTS. All contributing project authors may
     7  // be found in the AUTHORS file in the root of the source tree.
     8  // -----------------------------------------------------------------------------
     9  //
    10  // Utilities for processing transparent channel.
    11  //
    12  // Author: Skal (pascal.massimino@gmail.com)
    13  
    14  #ifndef WEBP_UTILS_ALPHA_PROCESSING_H_
    15  #define WEBP_UTILS_ALPHA_PROCESSING_H_
    16  
    17  #include "../webp/types.h"
    18  
    19  #ifdef __cplusplus
    20  extern "C" {
    21  #endif
    22  
    23  // Pre-Multiply operation transforms x into x * A / 255  (where x=Y,R,G or B).
    24  // Un-Multiply operation transforms x into x * 255 / A.
    25  
    26  // Pre-Multiply or Un-Multiply (if 'inverse' is true) argb values in a row.
    27  void WebPMultARGBRow(uint32_t* const ptr, int width, int inverse);
    28  
    29  // Same a WebPMultARGBRow(), but for several rows.
    30  void WebPMultARGBRows(uint8_t* ptr, int stride, int width, int num_rows,
    31                        int inverse);
    32  
    33  // Same for a row of single values, with side alpha values.
    34  void WebPMultRow(uint8_t* const ptr, const uint8_t* const alpha,
    35                   int width, int inverse);
    36  
    37  // Same a WebPMultRow(), but for several 'num_rows' rows.
    38  void WebPMultRows(uint8_t* ptr, int stride,
    39                    const uint8_t* alpha, int alpha_stride,
    40                    int width, int num_rows, int inverse);
    41  
    42  #ifdef __cplusplus
    43  }    // extern "C"
    44  #endif
    45  
    46  #endif    // WEBP_UTILS_ALPHA_PROCESSING_H_