198aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski/* 298aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski * Copyright (C) 2015 The Android Open Source Project 398aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski * 498aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski * Licensed under the Apache License, Version 2.0 (the "License"); 598aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski * you may not use this file except in compliance with the License. 698aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski * You may obtain a copy of the License at 798aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski * 898aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski * http://www.apache.org/licenses/LICENSE-2.0 998aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski * 1098aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski * Unless required by applicable law or agreed to in writing, software 1198aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski * distributed under the License is distributed on an "AS IS" BASIS, 1298aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1398aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski * See the License for the specific language governing permissions and 1498aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski * limitations under the License. 1598aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski */ 1698aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski 1798aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski#ifndef AAPT_PNG_H 1898aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski#define AAPT_PNG_H 1998aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski 201ab598f46c3ff520a67f9d80194847741f3467abAdam Lesinski#include "util/BigBuffer.h" 211ab598f46c3ff520a67f9d80194847741f3467abAdam Lesinski#include "Diagnostics.h" 2298aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski#include "Source.h" 2398aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski 2498aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski#include <iostream> 2598aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski#include <string> 2698aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski 2798aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinskinamespace aapt { 2898aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski 291ab598f46c3ff520a67f9d80194847741f3467abAdam Lesinskistruct PngOptions { 301ab598f46c3ff520a67f9d80194847741f3467abAdam Lesinski int grayScaleTolerance = 0; 311ab598f46c3ff520a67f9d80194847741f3467abAdam Lesinski}; 321ab598f46c3ff520a67f9d80194847741f3467abAdam Lesinski 331ab598f46c3ff520a67f9d80194847741f3467abAdam Lesinskiclass Png { 341ab598f46c3ff520a67f9d80194847741f3467abAdam Lesinskipublic: 351ab598f46c3ff520a67f9d80194847741f3467abAdam Lesinski Png(IDiagnostics* diag) : mDiag(diag) { 361ab598f46c3ff520a67f9d80194847741f3467abAdam Lesinski } 371ab598f46c3ff520a67f9d80194847741f3467abAdam Lesinski 381ab598f46c3ff520a67f9d80194847741f3467abAdam Lesinski bool process(const Source& source, std::istream* input, BigBuffer* outBuffer, 391ab598f46c3ff520a67f9d80194847741f3467abAdam Lesinski const PngOptions& options); 4098aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski 411ab598f46c3ff520a67f9d80194847741f3467abAdam Lesinskiprivate: 421ab598f46c3ff520a67f9d80194847741f3467abAdam Lesinski IDiagnostics* mDiag; 4398aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski}; 4498aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski 4598aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski} // namespace aapt 4698aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski 4798aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski#endif // AAPT_PNG_H 48