github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/image/color/ycbcr.go (about)

     1  // Copyright 2011 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package color
     6  
     7  // RGBToYCbCrは、RGBトリプルをY'CbCrトリプルに変換します。
     8  func RGBToYCbCr(r, g, b uint8) (uint8, uint8, uint8)
     9  
    10  // YCbCrToRGBは、Y'CbCrトリプルをRGBトリプルに変換します。
    11  func YCbCrToRGB(y, cb, cr uint8) (uint8, uint8, uint8)
    12  
    13  // YCbCrは、完全に不透明な24ビットのY'CbCr色を表し、
    14  // 1つの輝度成分と2つの色差成分のそれぞれに8ビットずつを持っています。
    15  //
    16  // JPEG、VP8、MPEGファミリー、その他のコーデックはこのカラーモデルを使用します。
    17  // これらのコーデックはしばしばYUVとY'CbCrを同義語として使用しますが、
    18  // 厳密には、YUVという用語はアナログビデオ信号にのみ適用され、
    19  // Y'(ルーマ)はガンマ補正を適用した後のY(輝度)です。
    20  //
    21  // RGBとY'CbCr間の変換は損失を伴い、両者間の変換には少し異なる複数の公式があります。
    22  // このパッケージは、https://www.w3.org/Graphics/JPEG/jfif3.pdf のJFIF仕様に従います。
    23  type YCbCr struct {
    24  	Y, Cb, Cr uint8
    25  }
    26  
    27  func (c YCbCr) RGBA() (uint32, uint32, uint32, uint32)
    28  
    29  // YCbCrModelはY'CbCr色の [Model] です。
    30  var YCbCrModel Model = ModelFunc(yCbCrModel)
    31  
    32  // NYCbCrAは、アルファ非乗算のY'CbCr-with-alpha色を表し、
    33  // 1つの輝度成分、2つの色差成分、1つのアルファ成分それぞれに8ビットずつを持っています。
    34  type NYCbCrA struct {
    35  	YCbCr
    36  	A uint8
    37  }
    38  
    39  func (c NYCbCrA) RGBA() (uint32, uint32, uint32, uint32)
    40  
    41  // NYCbCrAModelは、アルファ非乗算のY'CbCr-with-alpha色の [Model] です。
    42  var NYCbCrAModel Model = ModelFunc(nYCbCrAModel)
    43  
    44  // RGBToCMYKは、RGBトリプルをCMYK四重奏に変換します。
    45  func RGBToCMYK(r, g, b uint8) (uint8, uint8, uint8, uint8)
    46  
    47  // CMYKToRGBは、[CMYK] 四重奏をRGBトリプルに変換します。
    48  func CMYKToRGB(c, m, y, k uint8) (uint8, uint8, uint8)
    49  
    50  // CMYKは、シアン、マゼンタ、イエロー、ブラックの各色に8ビットずつ持つ、完全に不透明なCMYK色を表します。
    51  //
    52  // それは特定のカラープロファイルに関連付けられていません。
    53  type CMYK struct {
    54  	C, M, Y, K uint8
    55  }
    56  
    57  func (c CMYK) RGBA() (uint32, uint32, uint32, uint32)
    58  
    59  // CMYKModelはCMYK色の [Model] です。
    60  var CMYKModel Model = ModelFunc(cmykModel)