https://codereview.appspot.com/13407045/diff/14001/bmp/writer.go File bmp/writer.go (right): https://codereview.appspot.com/13407045/diff/14001/bmp/writer.go#newcode1 bmp/writer.go:1: // Copyright 2011 The Go Authors. All rights reserved. ...
11 years, 6 months ago
(2013-09-06 09:05:20 UTC)
#2
PTAL https://codereview.appspot.com/13407045/diff/14001/bmp/writer.go File bmp/writer.go (right): https://codereview.appspot.com/13407045/diff/14001/bmp/writer.go#newcode1 bmp/writer.go:1: // Copyright 2011 The Go Authors. All rights ...
11 years, 6 months ago
(2013-09-06 10:21:16 UTC)
#3
https://codereview.appspot.com/13407045/diff/14001/bmp/writer.go File bmp/writer.go (right): https://codereview.appspot.com/13407045/diff/14001/bmp/writer.go#newcode90 bmp/writer.go:90: head := &bmpHead{ On 2013/09/09 01:44:33, nigeltao wrote: > ...
11 years, 6 months ago
(2013-09-09 05:28:27 UTC)
#5
https://codereview.appspot.com/13407045/diff/14001/bmp/writer.go
File bmp/writer.go (right):
https://codereview.appspot.com/13407045/diff/14001/bmp/writer.go#newcode90
bmp/writer.go:90: head := &bmpHead{
On 2013/09/09 01:44:33, nigeltao wrote:
> On 2013/09/06 10:21:16, chai2010 wrote:
> > some head fields are different bettwen RGB/Gray.
> > do we need create a new func write head?
>
> It doesn't need to be a function. Put it at the top of Encode:
>
> var palette, pix []byte
> h := &header {
> etc
> }
> switch m := m.(type) {
> case *image.Gray:
> h.bpp = 8
> palette = make([]byte, 1024)
> etc
> pix = m.Pix
> etc
> }
> h.fileSize += len(palette)
> if err := binary.Write(w, binary.LittleEndian, head); err != nil {
> etc
> }
> switch {
> case palette != nil:
> write pix for image.Gray or image.Paletted
> case pix != nil:
> write pix for image.RGBA
> default:
> write other images
> }
> return nil
Done.
https://codereview.appspot.com/13407045/diff/20001/bmp/writer.go
File bmp/writer.go (right):
https://codereview.appspot.com/13407045/diff/20001/bmp/writer.go#newcode14
bmp/writer.go:14: type bmpHead struct {
On 2013/09/09 01:44:33, nigeltao wrote:
> Rename bmpHead to header. We're already in package bmp.
Done.
https://codereview.appspot.com/13407045/diff/20001/bmp/writer.go#newcode34
bmp/writer.go:34: bmpPalette := make([]byte, 1024)
On 2013/09/09 01:44:33, nigeltao wrote:
> Drop the "bmp". We're already in package bmp.
Done.
https://codereview.appspot.com/13407045/diff/20001/bmp/writer.go#newcode73
bmp/writer.go:73: max := y*stride + step
On 2013/09/09 01:44:33, nigeltao wrote:
> Won't pix[min:max] panic if the image is e.g. 3 pixels wide (so step is 4)?
if stride < step {
// use stride, but need write padding
} else {
// use step
}
Issue 13407045: code review 13407045: go.image/bmp: add Encode
(Closed)
Created 11 years, 6 months ago by chai2010
Modified 11 years, 1 month ago
Reviewers:
Base URL:
Comments: 48