Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  * Copyright (C) 2014 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  *      http://www.apache.org/licenses/LICENSE-2.0
  *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.android.builder.png;
PNG Writer. A PNG file is simply a signature followed by a number of Chunk. PNG specification reference: http://tools.ietf.org/html/rfc2083
public class PngWriter {

    
Chunk type for the chunk that ends the PNG file.
    private static final Chunk sIend = new Chunk(new byte[] { 'I''E''N''D' });

    
Signature of a PNG file.
    public static final byte[] SIGNATURE = new byte[] {
            (byte) 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A };


    
Chunk type for the Image-Data chunk.
    public static final byte[] IDAT = new byte[] { 'I''D''A''T' };
    
Chunk type for the Image-Header chunk.
    public static final byte[] IHDR = new byte[] { 'I''H''D''R' };
    
Chunk type for the palette chunk.
    public static final byte[] PLTE = new byte[] { 'P''L''T''E' };
    
Chunk type for the transparency data chunk.
    public static final byte[] TRNS = new byte[] { 't''R''N''S' };
    @NonNull
    private final File mToFile;
    private Chunk mIhdr;
    private final List<ChunkmChunks = Lists.newArrayList();
    public PngWriter(@NonNull File toFile) {
         = toFile;
    }
    public PngWriter setIhdr(@NonNull Chunk chunk) {
         = chunk;
        return this;
    }
    public PngWriter setChunk(@NonNull Chunk chunk) {
        .add(chunk);
        return this;
    }
    public PngWriter setChunks(@NonNull List<Chunkchunks) {
        .addAll(chunks);
        return this;
    }
    public void write() throws IOException {
        FileOutputStream fos = new FileOutputStream();
        try {
            // copy the sig
            fos.write();
            .write(fos);
            for (Chunk chunk : ) {
                chunk.write(fos);
            }
            .write(fos);
        } finally {
            fos.close();
        }
    }
New to GrepCode? Check out our FAQ X