1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
<h1> Package png </h1> <ul id="short-nav">
<li><code>import "image/png"</code></li>
<li><a href="#pkg-overview" class="overviewLink">Overview</a></li>
<li><a href="#pkg-index" class="indexLink">Index</a></li>
<li><a href="#pkg-examples" class="examplesLink">Examples</a></li>
</ul> <h2 id="pkg-overview">Overview </h2> <p>Package png implements a PNG image decoder and encoder. </p>
<p>The PNG specification is at <a href="https://www.w3.org/TR/PNG/">https://www.w3.org/TR/PNG/</a>. </p> <h2 id="pkg-index">Index </h2> <ul id="manual-nav">
<li><a href="#Decode">func Decode(r io.Reader) (image.Image, error)</a></li>
<li><a href="#DecodeConfig">func DecodeConfig(r io.Reader) (image.Config, error)</a></li>
<li><a href="#Encode">func Encode(w io.Writer, m image.Image) error</a></li>
<li><a href="#CompressionLevel">type CompressionLevel</a></li>
<li><a href="#Encoder">type Encoder</a></li>
<li> <a href="#Encoder.Encode">func (enc *Encoder) Encode(w io.Writer, m image.Image) error</a>
</li>
<li><a href="#EncoderBuffer">type EncoderBuffer</a></li>
<li><a href="#EncoderBufferPool">type EncoderBufferPool</a></li>
<li><a href="#FormatError">type FormatError</a></li>
<li> <a href="#FormatError.Error">func (e FormatError) Error() string</a>
</li>
<li><a href="#UnsupportedError">type UnsupportedError</a></li>
<li> <a href="#UnsupportedError.Error">func (e UnsupportedError) Error() string</a>
</li>
</ul> <div id="pkg-examples"> <h3>Examples</h3> <dl> <dd><a class="exampleLink" href="#example_Decode">Decode</a></dd> <dd><a class="exampleLink" href="#example_Encode">Encode</a></dd> </dl> </div> <h3>Package files</h3> <p> <span>paeth.go</span> <span>reader.go</span> <span>writer.go</span> </p> <h2 id="Decode">func <span>Decode</span> </h2> <pre data-language="go">func Decode(r io.Reader) (image.Image, error)</pre> <p>Decode reads a PNG image from r and returns it as an <span>image.Image</span>. The type of Image returned depends on the PNG contents. </p> <h4 id="example_Decode"> <span class="text">Example</span>
</h4> <p>Code:</p> <pre class="code" data-language="go">
// This example uses png.Decode which can only decode PNG images.
// Consider using the general image.Decode as it can sniff and decode any registered image format.
img, err := png.Decode(gopherPNG())
if err != nil {
log.Fatal(err)
}
levels := []string{" ", "░", "▒", "▓", "█"}
for y := img.Bounds().Min.Y; y < img.Bounds().Max.Y; y++ {
for x := img.Bounds().Min.X; x < img.Bounds().Max.X; x++ {
c := color.GrayModel.Convert(img.At(x, y)).(color.Gray)
level := c.Y / 51 // 51 * 5 = 255
if level == 5 {
level--
}
fmt.Print(levels[level])
}
fmt.Print("\n")
}
</pre> <h2 id="DecodeConfig">func <span>DecodeConfig</span> </h2> <pre data-language="go">func DecodeConfig(r io.Reader) (image.Config, error)</pre> <p>DecodeConfig returns the color model and dimensions of a PNG image without decoding the entire image. </p>
<h2 id="Encode">func <span>Encode</span> </h2> <pre data-language="go">func Encode(w io.Writer, m image.Image) error</pre> <p>Encode writes the Image m to w in PNG format. Any Image may be encoded, but images that are not <span>image.NRGBA</span> might be encoded lossily. </p> <h4 id="example_Encode"> <span class="text">Example</span>
</h4> <p>Code:</p> <pre class="code" data-language="go">
const width, height = 256, 256
// Create a colored image of the given width and height.
img := image.NewNRGBA(image.Rect(0, 0, width, height))
for y := 0; y < height; y++ {
for x := 0; x < width; x++ {
img.Set(x, y, color.NRGBA{
R: uint8((x + y) & 255),
G: uint8((x + y) << 1 & 255),
B: uint8((x + y) << 2 & 255),
A: 255,
})
}
}
f, err := os.Create("image.png")
if err != nil {
log.Fatal(err)
}
if err := png.Encode(f, img); err != nil {
f.Close()
log.Fatal(err)
}
if err := f.Close(); err != nil {
log.Fatal(err)
}
</pre> <h2 id="CompressionLevel">type <span>CompressionLevel</span> <span title="Added in Go 1.4">1.4</span> </h2> <p>CompressionLevel indicates the compression level. </p>
<pre data-language="go">type CompressionLevel int</pre> <pre data-language="go">const (
DefaultCompression CompressionLevel = 0
NoCompression CompressionLevel = -1
BestSpeed CompressionLevel = -2
BestCompression CompressionLevel = -3
)</pre> <h2 id="Encoder">type <span>Encoder</span> <span title="Added in Go 1.4">1.4</span> </h2> <p>Encoder configures encoding PNG images. </p>
<pre data-language="go">type Encoder struct {
CompressionLevel CompressionLevel
// BufferPool optionally specifies a buffer pool to get temporary
// EncoderBuffers when encoding an image.
BufferPool EncoderBufferPool // Go 1.9
}
</pre> <h3 id="Encoder.Encode">func (*Encoder) <span>Encode</span> <span title="Added in Go 1.4">1.4</span> </h3> <pre data-language="go">func (enc *Encoder) Encode(w io.Writer, m image.Image) error</pre> <p>Encode writes the Image m to w in PNG format. </p>
<h2 id="EncoderBuffer">type <span>EncoderBuffer</span> <span title="Added in Go 1.9">1.9</span> </h2> <p>EncoderBuffer holds the buffers used for encoding PNG images. </p>
<pre data-language="go">type EncoderBuffer encoder</pre> <h2 id="EncoderBufferPool">type <span>EncoderBufferPool</span> <span title="Added in Go 1.9">1.9</span> </h2> <p>EncoderBufferPool is an interface for getting and returning temporary instances of the <a href="#EncoderBuffer">EncoderBuffer</a> struct. This can be used to reuse buffers when encoding multiple images. </p>
<pre data-language="go">type EncoderBufferPool interface {
Get() *EncoderBuffer
Put(*EncoderBuffer)
}</pre> <h2 id="FormatError">type <span>FormatError</span> </h2> <p>A FormatError reports that the input is not a valid PNG. </p>
<pre data-language="go">type FormatError string</pre> <h3 id="FormatError.Error">func (FormatError) <span>Error</span> </h3> <pre data-language="go">func (e FormatError) Error() string</pre> <h2 id="UnsupportedError">type <span>UnsupportedError</span> </h2> <p>An UnsupportedError reports that the input uses a valid but unimplemented PNG feature. </p>
<pre data-language="go">type UnsupportedError string</pre> <h3 id="UnsupportedError.Error">func (UnsupportedError) <span>Error</span> </h3> <pre data-language="go">func (e UnsupportedError) Error() string</pre><div class="_attribution">
<p class="_attribution-p">
© Google, Inc.<br>Licensed under the Creative Commons Attribution License 3.0.<br>
<a href="http://golang.org/pkg/image/png/" class="_attribution-link">http://golang.org/pkg/image/png/</a>
</p>
</div>
|