Added: websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/chunks/PngChunkItxt.html ============================================================================== --- websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/chunks/PngChunkItxt.html (added) +++ websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/chunks/PngChunkItxt.html Wed May 15 13:26:03 2024 @@ -0,0 +1,188 @@ +<!DOCTYPE HTML> +<html lang="en"> +<head> +<!-- Generated by javadoc (17) --> +<title>Source code</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta name="description" content="source: package: org.apache.commons.imaging.formats.png.chunks, class: PngChunkItxt"> +<meta name="generator" content="javadoc/SourceToHTMLConverter"> +<link rel="stylesheet" type="text/css" href="../../../../../../../../stylesheet.css" title="Style"> +</head> +<body class="source-page"> +<main role="main"> +<div class="source-container"> +<pre><span class="source-line-no">001</span><span id="line-1">/*</span> +<span class="source-line-no">002</span><span id="line-2"> * Licensed to the Apache Software Foundation (ASF) under one or more</span> +<span class="source-line-no">003</span><span id="line-3"> * contributor license agreements. See the NOTICE file distributed with</span> +<span class="source-line-no">004</span><span id="line-4"> * this work for additional information regarding copyright ownership.</span> +<span class="source-line-no">005</span><span id="line-5"> * The ASF licenses this file to You under the Apache License, Version 2.0</span> +<span class="source-line-no">006</span><span id="line-6"> * (the "License"); you may not use this file except in compliance with</span> +<span class="source-line-no">007</span><span id="line-7"> * the License. You may obtain a copy of the License at</span> +<span class="source-line-no">008</span><span id="line-8"> *</span> +<span class="source-line-no">009</span><span id="line-9"> * http://www.apache.org/licenses/LICENSE-2.0</span> +<span class="source-line-no">010</span><span id="line-10"> *</span> +<span class="source-line-no">011</span><span id="line-11"> * Unless required by applicable law or agreed to in writing, software</span> +<span class="source-line-no">012</span><span id="line-12"> * distributed under the License is distributed on an "AS IS" BASIS,</span> +<span class="source-line-no">013</span><span id="line-13"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span> +<span class="source-line-no">014</span><span id="line-14"> * See the License for the specific language governing permissions and</span> +<span class="source-line-no">015</span><span id="line-15"> * limitations under the License.</span> +<span class="source-line-no">016</span><span id="line-16"> */</span> +<span class="source-line-no">017</span><span id="line-17">package org.apache.commons.imaging.formats.png.chunks;</span> +<span class="source-line-no">018</span><span id="line-18"></span> +<span class="source-line-no">019</span><span id="line-19">import java.io.ByteArrayInputStream;</span> +<span class="source-line-no">020</span><span id="line-20">import java.io.IOException;</span> +<span class="source-line-no">021</span><span id="line-21">import java.nio.charset.StandardCharsets;</span> +<span class="source-line-no">022</span><span id="line-22">import java.util.zip.InflaterInputStream;</span> +<span class="source-line-no">023</span><span id="line-23"></span> +<span class="source-line-no">024</span><span id="line-24">import org.apache.commons.imaging.ImagingException;</span> +<span class="source-line-no">025</span><span id="line-25">import org.apache.commons.imaging.common.Allocator;</span> +<span class="source-line-no">026</span><span id="line-26">import org.apache.commons.imaging.common.BinaryFunctions;</span> +<span class="source-line-no">027</span><span id="line-27">import org.apache.commons.imaging.formats.png.AbstractPngText;</span> +<span class="source-line-no">028</span><span id="line-28">import org.apache.commons.imaging.formats.png.PngConstants;</span> +<span class="source-line-no">029</span><span id="line-29">import org.apache.commons.io.IOUtils;</span> +<span class="source-line-no">030</span><span id="line-30"></span> +<span class="source-line-no">031</span><span id="line-31">public class PngChunkItxt extends AbstractPngTextChunk {</span> +<span class="source-line-no">032</span><span id="line-32"></span> +<span class="source-line-no">033</span><span id="line-33"> private final String keyword;</span> +<span class="source-line-no">034</span><span id="line-34"> private final String text;</span> +<span class="source-line-no">035</span><span id="line-35"></span> +<span class="source-line-no">036</span><span id="line-36"> /**</span> +<span class="source-line-no">037</span><span id="line-37"> * The language tag defined in [RFC-3066] indicates the human language used by the translated keyword and the text. Unlike the keyword, the language tag is</span> +<span class="source-line-no">038</span><span id="line-38"> * case-insensitive. It is an ISO 646.IRV:1991 [ISO 646] string consisting of hyphen-separated words of 1-8 alphanumeric characters each (for example cn,</span> +<span class="source-line-no">039</span><span id="line-39"> * en-uk, no-bok, x-klingon, x-KlInGoN). If the first word is two or three letters long, it is an ISO language code [ISO-639]. If the language tag is empty,</span> +<span class="source-line-no">040</span><span id="line-40"> * the language is unspecified.</span> +<span class="source-line-no">041</span><span id="line-41"> */</span> +<span class="source-line-no">042</span><span id="line-42"> private final String languageTag;</span> +<span class="source-line-no">043</span><span id="line-43"></span> +<span class="source-line-no">044</span><span id="line-44"> private final String translatedKeyword;</span> +<span class="source-line-no">045</span><span id="line-45"></span> +<span class="source-line-no">046</span><span id="line-46"> public PngChunkItxt(final int length, final int chunkType, final int crc, final byte[] bytes) throws ImagingException, IOException {</span> +<span class="source-line-no">047</span><span id="line-47"> super(length, chunkType, crc, bytes);</span> +<span class="source-line-no">048</span><span id="line-48"> int terminator = BinaryFunctions.findNull(bytes, "PNG iTXt chunk keyword is not terminated.");</span> +<span class="source-line-no">049</span><span id="line-49"></span> +<span class="source-line-no">050</span><span id="line-50"> keyword = new String(bytes, 0, terminator, StandardCharsets.ISO_8859_1);</span> +<span class="source-line-no">051</span><span id="line-51"> int index = terminator + 1;</span> +<span class="source-line-no">052</span><span id="line-52"></span> +<span class="source-line-no">053</span><span id="line-53"> final int compressionFlag = bytes[index++];</span> +<span class="source-line-no">054</span><span id="line-54"> if (compressionFlag != 0 && compressionFlag != 1) {</span> +<span class="source-line-no">055</span><span id="line-55"> throw new ImagingException("PNG iTXt chunk has invalid compression flag: " + compressionFlag);</span> +<span class="source-line-no">056</span><span id="line-56"> }</span> +<span class="source-line-no">057</span><span id="line-57"></span> +<span class="source-line-no">058</span><span id="line-58"> final boolean compressed = compressionFlag == 1;</span> +<span class="source-line-no">059</span><span id="line-59"></span> +<span class="source-line-no">060</span><span id="line-60"> final int compressionMethod = bytes[index++];</span> +<span class="source-line-no">061</span><span id="line-61"> if (compressed && compressionMethod != PngConstants.COMPRESSION_DEFLATE_INFLATE) {</span> +<span class="source-line-no">062</span><span id="line-62"> throw new ImagingException("PNG iTXt chunk has unexpected compression method: " + compressionMethod);</span> +<span class="source-line-no">063</span><span id="line-63"> }</span> +<span class="source-line-no">064</span><span id="line-64"></span> +<span class="source-line-no">065</span><span id="line-65"> terminator = BinaryFunctions.findNull(bytes, index, "PNG iTXt chunk language tag is not terminated.");</span> +<span class="source-line-no">066</span><span id="line-66"> languageTag = new String(bytes, index, terminator - index, StandardCharsets.ISO_8859_1);</span> +<span class="source-line-no">067</span><span id="line-67"> index = terminator + 1;</span> +<span class="source-line-no">068</span><span id="line-68"></span> +<span class="source-line-no">069</span><span id="line-69"> terminator = BinaryFunctions.findNull(bytes, index, "PNG iTXt chunk translated keyword is not terminated.");</span> +<span class="source-line-no">070</span><span id="line-70"> translatedKeyword = new String(bytes, index, terminator - index, StandardCharsets.UTF_8);</span> +<span class="source-line-no">071</span><span id="line-71"> index = terminator + 1;</span> +<span class="source-line-no">072</span><span id="line-72"></span> +<span class="source-line-no">073</span><span id="line-73"> if (compressed) {</span> +<span class="source-line-no">074</span><span id="line-74"> final int compressedTextLength = bytes.length - index;</span> +<span class="source-line-no">075</span><span id="line-75"></span> +<span class="source-line-no">076</span><span id="line-76"> final byte[] compressedText = Allocator.byteArray(compressedTextLength);</span> +<span class="source-line-no">077</span><span id="line-77"> System.arraycopy(bytes, index, compressedText, 0, compressedTextLength);</span> +<span class="source-line-no">078</span><span id="line-78"></span> +<span class="source-line-no">079</span><span id="line-79"> text = new String(IOUtils.toByteArray(new InflaterInputStream(new ByteArrayInputStream(compressedText))), StandardCharsets.UTF_8);</span> +<span class="source-line-no">080</span><span id="line-80"></span> +<span class="source-line-no">081</span><span id="line-81"> } else {</span> +<span class="source-line-no">082</span><span id="line-82"> text = new String(bytes, index, bytes.length - index, StandardCharsets.UTF_8);</span> +<span class="source-line-no">083</span><span id="line-83"> }</span> +<span class="source-line-no">084</span><span id="line-84"> }</span> +<span class="source-line-no">085</span><span id="line-85"></span> +<span class="source-line-no">086</span><span id="line-86"> @Override</span> +<span class="source-line-no">087</span><span id="line-87"> public AbstractPngText getContents() {</span> +<span class="source-line-no">088</span><span id="line-88"> return new AbstractPngText.Itxt(keyword, text, languageTag, translatedKeyword);</span> +<span class="source-line-no">089</span><span id="line-89"> }</span> +<span class="source-line-no">090</span><span id="line-90"></span> +<span class="source-line-no">091</span><span id="line-91"> /**</span> +<span class="source-line-no">092</span><span id="line-92"> * @return Gets the keyword.</span> +<span class="source-line-no">093</span><span id="line-93"> */</span> +<span class="source-line-no">094</span><span id="line-94"> @Override</span> +<span class="source-line-no">095</span><span id="line-95"> public String getKeyword() {</span> +<span class="source-line-no">096</span><span id="line-96"> return keyword;</span> +<span class="source-line-no">097</span><span id="line-97"> }</span> +<span class="source-line-no">098</span><span id="line-98"></span> +<span class="source-line-no">099</span><span id="line-99"> /**</span> +<span class="source-line-no">100</span><span id="line-100"> * @return Gets the text.</span> +<span class="source-line-no">101</span><span id="line-101"> */</span> +<span class="source-line-no">102</span><span id="line-102"> @Override</span> +<span class="source-line-no">103</span><span id="line-103"> public String getText() {</span> +<span class="source-line-no">104</span><span id="line-104"> return text;</span> +<span class="source-line-no">105</span><span id="line-105"> }</span> +<span class="source-line-no">106</span><span id="line-106"></span> +<span class="source-line-no">107</span><span id="line-107"> public String getTranslatedKeyword() {</span> +<span class="source-line-no">108</span><span id="line-108"> return translatedKeyword;</span> +<span class="source-line-no">109</span><span id="line-109"> }</span> +<span class="source-line-no">110</span><span id="line-110">}</span> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +</pre> +</div> +</main> +</body> +</html> \ No newline at end of file
Added: websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/chunks/PngChunkPhys.html ============================================================================== --- websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/chunks/PngChunkPhys.html (added) +++ websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/chunks/PngChunkPhys.html Wed May 15 13:26:03 2024 @@ -0,0 +1,129 @@ +<!DOCTYPE HTML> +<html lang="en"> +<head> +<!-- Generated by javadoc (17) --> +<title>Source code</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta name="description" content="source: package: org.apache.commons.imaging.formats.png.chunks, class: PngChunkPhys"> +<meta name="generator" content="javadoc/SourceToHTMLConverter"> +<link rel="stylesheet" type="text/css" href="../../../../../../../../stylesheet.css" title="Style"> +</head> +<body class="source-page"> +<main role="main"> +<div class="source-container"> +<pre><span class="source-line-no">001</span><span id="line-1">/*</span> +<span class="source-line-no">002</span><span id="line-2"> * Licensed to the Apache Software Foundation (ASF) under one or more</span> +<span class="source-line-no">003</span><span id="line-3"> * contributor license agreements. See the NOTICE file distributed with</span> +<span class="source-line-no">004</span><span id="line-4"> * this work for additional information regarding copyright ownership.</span> +<span class="source-line-no">005</span><span id="line-5"> * The ASF licenses this file to You under the Apache License, Version 2.0</span> +<span class="source-line-no">006</span><span id="line-6"> * (the "License"); you may not use this file except in compliance with</span> +<span class="source-line-no">007</span><span id="line-7"> * the License. You may obtain a copy of the License at</span> +<span class="source-line-no">008</span><span id="line-8"> *</span> +<span class="source-line-no">009</span><span id="line-9"> * http://www.apache.org/licenses/LICENSE-2.0</span> +<span class="source-line-no">010</span><span id="line-10"> *</span> +<span class="source-line-no">011</span><span id="line-11"> * Unless required by applicable law or agreed to in writing, software</span> +<span class="source-line-no">012</span><span id="line-12"> * distributed under the License is distributed on an "AS IS" BASIS,</span> +<span class="source-line-no">013</span><span id="line-13"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span> +<span class="source-line-no">014</span><span id="line-14"> * See the License for the specific language governing permissions and</span> +<span class="source-line-no">015</span><span id="line-15"> * limitations under the License.</span> +<span class="source-line-no">016</span><span id="line-16"> */</span> +<span class="source-line-no">017</span><span id="line-17">package org.apache.commons.imaging.formats.png.chunks;</span> +<span class="source-line-no">018</span><span id="line-18"></span> +<span class="source-line-no">019</span><span id="line-19">import static org.apache.commons.imaging.common.BinaryFunctions.read4Bytes;</span> +<span class="source-line-no">020</span><span id="line-20">import static org.apache.commons.imaging.common.BinaryFunctions.readByte;</span> +<span class="source-line-no">021</span><span id="line-21"></span> +<span class="source-line-no">022</span><span id="line-22">import java.io.ByteArrayInputStream;</span> +<span class="source-line-no">023</span><span id="line-23">import java.io.IOException;</span> +<span class="source-line-no">024</span><span id="line-24"></span> +<span class="source-line-no">025</span><span id="line-25">public class PngChunkPhys extends PngChunk {</span> +<span class="source-line-no">026</span><span id="line-26"></span> +<span class="source-line-no">027</span><span id="line-27"> private final int pixelsPerUnitXAxis;</span> +<span class="source-line-no">028</span><span id="line-28"> private final int pixelsPerUnitYAxis;</span> +<span class="source-line-no">029</span><span id="line-29"> private final int unitSpecifier;</span> +<span class="source-line-no">030</span><span id="line-30"></span> +<span class="source-line-no">031</span><span id="line-31"> public PngChunkPhys(final int length, final int chunkType, final int crc, final byte[] bytes) throws IOException {</span> +<span class="source-line-no">032</span><span id="line-32"> super(length, chunkType, crc, bytes);</span> +<span class="source-line-no">033</span><span id="line-33"> final ByteArrayInputStream is = new ByteArrayInputStream(bytes);</span> +<span class="source-line-no">034</span><span id="line-34"> pixelsPerUnitXAxis = read4Bytes("PixelsPerUnitXAxis", is, "Not a Valid PNG File: pHYs Corrupt", getByteOrder());</span> +<span class="source-line-no">035</span><span id="line-35"> pixelsPerUnitYAxis = read4Bytes("PixelsPerUnitYAxis", is, "Not a Valid PNG File: pHYs Corrupt", getByteOrder());</span> +<span class="source-line-no">036</span><span id="line-36"> unitSpecifier = readByte("Unit specifier", is, "Not a Valid PNG File: pHYs Corrupt");</span> +<span class="source-line-no">037</span><span id="line-37"> }</span> +<span class="source-line-no">038</span><span id="line-38"></span> +<span class="source-line-no">039</span><span id="line-39"> public int getPixelsPerUnitXAxis() {</span> +<span class="source-line-no">040</span><span id="line-40"> return pixelsPerUnitXAxis;</span> +<span class="source-line-no">041</span><span id="line-41"> }</span> +<span class="source-line-no">042</span><span id="line-42"></span> +<span class="source-line-no">043</span><span id="line-43"> public int getPixelsPerUnitYAxis() {</span> +<span class="source-line-no">044</span><span id="line-44"> return pixelsPerUnitYAxis;</span> +<span class="source-line-no">045</span><span id="line-45"> }</span> +<span class="source-line-no">046</span><span id="line-46"></span> +<span class="source-line-no">047</span><span id="line-47"> public int getUnitSpecifier() {</span> +<span class="source-line-no">048</span><span id="line-48"> return unitSpecifier;</span> +<span class="source-line-no">049</span><span id="line-49"> }</span> +<span class="source-line-no">050</span><span id="line-50"></span> +<span class="source-line-no">051</span><span id="line-51">}</span> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +</pre> +</div> +</main> +</body> +</html> \ No newline at end of file Added: websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/chunks/PngChunkPlte.html ============================================================================== --- websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/chunks/PngChunkPlte.html (added) +++ websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/chunks/PngChunkPlte.html Wed May 15 13:26:03 2024 @@ -0,0 +1,157 @@ +<!DOCTYPE HTML> +<html lang="en"> +<head> +<!-- Generated by javadoc (17) --> +<title>Source code</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta name="description" content="source: package: org.apache.commons.imaging.formats.png.chunks, class: PngChunkPlte"> +<meta name="generator" content="javadoc/SourceToHTMLConverter"> +<link rel="stylesheet" type="text/css" href="../../../../../../../../stylesheet.css" title="Style"> +</head> +<body class="source-page"> +<main role="main"> +<div class="source-container"> +<pre><span class="source-line-no">001</span><span id="line-1">/*</span> +<span class="source-line-no">002</span><span id="line-2"> * Licensed to the Apache Software Foundation (ASF) under one or more</span> +<span class="source-line-no">003</span><span id="line-3"> * contributor license agreements. See the NOTICE file distributed with</span> +<span class="source-line-no">004</span><span id="line-4"> * this work for additional information regarding copyright ownership.</span> +<span class="source-line-no">005</span><span id="line-5"> * The ASF licenses this file to You under the Apache License, Version 2.0</span> +<span class="source-line-no">006</span><span id="line-6"> * (the "License"); you may not use this file except in compliance with</span> +<span class="source-line-no">007</span><span id="line-7"> * the License. You may obtain a copy of the License at</span> +<span class="source-line-no">008</span><span id="line-8"> *</span> +<span class="source-line-no">009</span><span id="line-9"> * http://www.apache.org/licenses/LICENSE-2.0</span> +<span class="source-line-no">010</span><span id="line-10"> *</span> +<span class="source-line-no">011</span><span id="line-11"> * Unless required by applicable law or agreed to in writing, software</span> +<span class="source-line-no">012</span><span id="line-12"> * distributed under the License is distributed on an "AS IS" BASIS,</span> +<span class="source-line-no">013</span><span id="line-13"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span> +<span class="source-line-no">014</span><span id="line-14"> * See the License for the specific language governing permissions and</span> +<span class="source-line-no">015</span><span id="line-15"> * limitations under the License.</span> +<span class="source-line-no">016</span><span id="line-16"> */</span> +<span class="source-line-no">017</span><span id="line-17">package org.apache.commons.imaging.formats.png.chunks;</span> +<span class="source-line-no">018</span><span id="line-18"></span> +<span class="source-line-no">019</span><span id="line-19">import static org.apache.commons.imaging.common.BinaryFunctions.readByte;</span> +<span class="source-line-no">020</span><span id="line-20"></span> +<span class="source-line-no">021</span><span id="line-21">import java.io.ByteArrayInputStream;</span> +<span class="source-line-no">022</span><span id="line-22">import java.io.IOException;</span> +<span class="source-line-no">023</span><span id="line-23">import java.util.Arrays;</span> +<span class="source-line-no">024</span><span id="line-24"></span> +<span class="source-line-no">025</span><span id="line-25">import org.apache.commons.imaging.ImagingException;</span> +<span class="source-line-no">026</span><span id="line-26">import org.apache.commons.imaging.common.Allocator;</span> +<span class="source-line-no">027</span><span id="line-27">import org.apache.commons.imaging.formats.png.GammaCorrection;</span> +<span class="source-line-no">028</span><span id="line-28"></span> +<span class="source-line-no">029</span><span id="line-29">public class PngChunkPlte extends PngChunk {</span> +<span class="source-line-no">030</span><span id="line-30"> private final int[] rgb;</span> +<span class="source-line-no">031</span><span id="line-31"></span> +<span class="source-line-no">032</span><span id="line-32"> public PngChunkPlte(final int length, final int chunkType, final int crc, final byte[] bytes) throws ImagingException, IOException {</span> +<span class="source-line-no">033</span><span id="line-33"> super(length, chunkType, crc, bytes);</span> +<span class="source-line-no">034</span><span id="line-34"></span> +<span class="source-line-no">035</span><span id="line-35"> final ByteArrayInputStream is = new ByteArrayInputStream(bytes);</span> +<span class="source-line-no">036</span><span id="line-36"></span> +<span class="source-line-no">037</span><span id="line-37"> if (length % 3 != 0) {</span> +<span class="source-line-no">038</span><span id="line-38"> throw new ImagingException("PLTE: wrong length: " + length);</span> +<span class="source-line-no">039</span><span id="line-39"> }</span> +<span class="source-line-no">040</span><span id="line-40"></span> +<span class="source-line-no">041</span><span id="line-41"> final int count = length / 3;</span> +<span class="source-line-no">042</span><span id="line-42"></span> +<span class="source-line-no">043</span><span id="line-43"> rgb = Allocator.intArray(count);</span> +<span class="source-line-no">044</span><span id="line-44"></span> +<span class="source-line-no">045</span><span id="line-45"> for (int i = 0; i < count; i++) {</span> +<span class="source-line-no">046</span><span id="line-46"> final int red = readByte("red[" + i + "]", is, "Not a Valid PNG File: PLTE Corrupt");</span> +<span class="source-line-no">047</span><span id="line-47"> final int green = readByte("green[" + i + "]", is, "Not a Valid PNG File: PLTE Corrupt");</span> +<span class="source-line-no">048</span><span id="line-48"> final int blue = readByte("blue[" + i + "]", is, "Not a Valid PNG File: PLTE Corrupt");</span> +<span class="source-line-no">049</span><span id="line-49"> rgb[i] = 0xff000000 | (0xff & red) << 16 | (0xff & green) << 8 | (0xff & blue) << 0;</span> +<span class="source-line-no">050</span><span id="line-50"> }</span> +<span class="source-line-no">051</span><span id="line-51"> }</span> +<span class="source-line-no">052</span><span id="line-52"></span> +<span class="source-line-no">053</span><span id="line-53"> public void correct(final GammaCorrection gammaCorrection) {</span> +<span class="source-line-no">054</span><span id="line-54"> Arrays.setAll(rgb, i -> gammaCorrection.correctArgb(rgb[i]));</span> +<span class="source-line-no">055</span><span id="line-55"> }</span> +<span class="source-line-no">056</span><span id="line-56"></span> +<span class="source-line-no">057</span><span id="line-57"> public int[] getRgb() {</span> +<span class="source-line-no">058</span><span id="line-58"> return rgb.clone();</span> +<span class="source-line-no">059</span><span id="line-59"> }</span> +<span class="source-line-no">060</span><span id="line-60"></span> +<span class="source-line-no">061</span><span id="line-61"> // public void printPalette() {</span> +<span class="source-line-no">062</span><span id="line-62"> // Debug.debug();</span> +<span class="source-line-no">063</span><span id="line-63"> // Debug.debug("palette");</span> +<span class="source-line-no">064</span><span id="line-64"> // for (int i = 0; i < rgb.length; i++) {</span> +<span class="source-line-no">065</span><span id="line-65"> // Debug.debug("\t" + "palette[" + i + "];", rgb[i] + " (0x"</span> +<span class="source-line-no">066</span><span id="line-66"> // + Integer.toHexString(rgb[i]) + ")");</span> +<span class="source-line-no">067</span><span id="line-67"> //</span> +<span class="source-line-no">068</span><span id="line-68"> // }</span> +<span class="source-line-no">069</span><span id="line-69"> // Debug.debug();</span> +<span class="source-line-no">070</span><span id="line-70"> // }</span> +<span class="source-line-no">071</span><span id="line-71"></span> +<span class="source-line-no">072</span><span id="line-72"> public int getRgb(final int index) throws ImagingException {</span> +<span class="source-line-no">073</span><span id="line-73"> if (index < 0 || index >= rgb.length) {</span> +<span class="source-line-no">074</span><span id="line-74"> throw new ImagingException("PNG: unknown Palette reference: " + index);</span> +<span class="source-line-no">075</span><span id="line-75"> }</span> +<span class="source-line-no">076</span><span id="line-76"> return rgb[index];</span> +<span class="source-line-no">077</span><span id="line-77"> }</span> +<span class="source-line-no">078</span><span id="line-78"></span> +<span class="source-line-no">079</span><span id="line-79">}</span> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +</pre> +</div> +</main> +</body> +</html> \ No newline at end of file Added: websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/chunks/PngChunkScal.html ============================================================================== --- websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/chunks/PngChunkScal.html (added) +++ websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/chunks/PngChunkScal.html Wed May 15 13:26:03 2024 @@ -0,0 +1,149 @@ +<!DOCTYPE HTML> +<html lang="en"> +<head> +<!-- Generated by javadoc (17) --> +<title>Source code</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta name="description" content="source: package: org.apache.commons.imaging.formats.png.chunks, class: PngChunkScal"> +<meta name="generator" content="javadoc/SourceToHTMLConverter"> +<link rel="stylesheet" type="text/css" href="../../../../../../../../stylesheet.css" title="Style"> +</head> +<body class="source-page"> +<main role="main"> +<div class="source-container"> +<pre><span class="source-line-no">001</span><span id="line-1">/*</span> +<span class="source-line-no">002</span><span id="line-2"> * Licensed to the Apache Software Foundation (ASF) under one or more</span> +<span class="source-line-no">003</span><span id="line-3"> * contributor license agreements. See the NOTICE file distributed with</span> +<span class="source-line-no">004</span><span id="line-4"> * this work for additional information regarding copyright ownership.</span> +<span class="source-line-no">005</span><span id="line-5"> * The ASF licenses this file to You under the Apache License, Version 2.0</span> +<span class="source-line-no">006</span><span id="line-6"> * (the "License"); you may not use this file except in compliance with</span> +<span class="source-line-no">007</span><span id="line-7"> * the License. You may obtain a copy of the License at</span> +<span class="source-line-no">008</span><span id="line-8"> *</span> +<span class="source-line-no">009</span><span id="line-9"> * http://www.apache.org/licenses/LICENSE-2.0</span> +<span class="source-line-no">010</span><span id="line-10"> *</span> +<span class="source-line-no">011</span><span id="line-11"> * Unless required by applicable law or agreed to in writing, software</span> +<span class="source-line-no">012</span><span id="line-12"> * distributed under the License is distributed on an "AS IS" BASIS,</span> +<span class="source-line-no">013</span><span id="line-13"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span> +<span class="source-line-no">014</span><span id="line-14"> * See the License for the specific language governing permissions and</span> +<span class="source-line-no">015</span><span id="line-15"> * limitations under the License.</span> +<span class="source-line-no">016</span><span id="line-16"> */</span> +<span class="source-line-no">017</span><span id="line-17">package org.apache.commons.imaging.formats.png.chunks;</span> +<span class="source-line-no">018</span><span id="line-18"></span> +<span class="source-line-no">019</span><span id="line-19">import java.nio.charset.StandardCharsets;</span> +<span class="source-line-no">020</span><span id="line-20"></span> +<span class="source-line-no">021</span><span id="line-21">import org.apache.commons.imaging.ImagingException;</span> +<span class="source-line-no">022</span><span id="line-22">import org.apache.commons.imaging.common.BinaryFunctions;</span> +<span class="source-line-no">023</span><span id="line-23"></span> +<span class="source-line-no">024</span><span id="line-24">public class PngChunkScal extends PngChunk {</span> +<span class="source-line-no">025</span><span id="line-25"></span> +<span class="source-line-no">026</span><span id="line-26"> private final double unitsPerPixelXAxis;</span> +<span class="source-line-no">027</span><span id="line-27"> private final double unitsPerPixelYAxis;</span> +<span class="source-line-no">028</span><span id="line-28"> private final int unitSpecifier;</span> +<span class="source-line-no">029</span><span id="line-29"></span> +<span class="source-line-no">030</span><span id="line-30"> public PngChunkScal(final int length, final int chunkType, final int crc, final byte[] bytes) throws ImagingException {</span> +<span class="source-line-no">031</span><span id="line-31"> super(length, chunkType, crc, bytes);</span> +<span class="source-line-no">032</span><span id="line-32"></span> +<span class="source-line-no">033</span><span id="line-33"> unitSpecifier = bytes[0];</span> +<span class="source-line-no">034</span><span id="line-34"> if (getUnitSpecifier() != 1 && getUnitSpecifier() != 2) {</span> +<span class="source-line-no">035</span><span id="line-35"> throw new ImagingException("PNG sCAL invalid unit specifier: " + getUnitSpecifier());</span> +<span class="source-line-no">036</span><span id="line-36"> }</span> +<span class="source-line-no">037</span><span id="line-37"></span> +<span class="source-line-no">038</span><span id="line-38"> final int separator = BinaryFunctions.findNull(bytes, "PNG sCAL x and y axis value separator not found.");</span> +<span class="source-line-no">039</span><span id="line-39"> final int xIndex = 1;</span> +<span class="source-line-no">040</span><span id="line-40"> final String xStr = new String(bytes, xIndex, separator - 1, StandardCharsets.ISO_8859_1);</span> +<span class="source-line-no">041</span><span id="line-41"> unitsPerPixelXAxis = toDouble(xStr);</span> +<span class="source-line-no">042</span><span id="line-42"></span> +<span class="source-line-no">043</span><span id="line-43"> final int yIndex = separator + 1;</span> +<span class="source-line-no">044</span><span id="line-44"> if (yIndex >= length) {</span> +<span class="source-line-no">045</span><span id="line-45"> throw new ImagingException("PNG sCAL chunk missing the y axis value.");</span> +<span class="source-line-no">046</span><span id="line-46"> }</span> +<span class="source-line-no">047</span><span id="line-47"></span> +<span class="source-line-no">048</span><span id="line-48"> final String yStr = new String(bytes, yIndex, length - yIndex, StandardCharsets.ISO_8859_1);</span> +<span class="source-line-no">049</span><span id="line-49"> unitsPerPixelYAxis = toDouble(yStr);</span> +<span class="source-line-no">050</span><span id="line-50"> }</span> +<span class="source-line-no">051</span><span id="line-51"></span> +<span class="source-line-no">052</span><span id="line-52"> public int getUnitSpecifier() {</span> +<span class="source-line-no">053</span><span id="line-53"> return unitSpecifier;</span> +<span class="source-line-no">054</span><span id="line-54"> }</span> +<span class="source-line-no">055</span><span id="line-55"></span> +<span class="source-line-no">056</span><span id="line-56"> public double getUnitsPerPixelXAxis() {</span> +<span class="source-line-no">057</span><span id="line-57"> return unitsPerPixelXAxis;</span> +<span class="source-line-no">058</span><span id="line-58"> }</span> +<span class="source-line-no">059</span><span id="line-59"></span> +<span class="source-line-no">060</span><span id="line-60"> public double getUnitsPerPixelYAxis() {</span> +<span class="source-line-no">061</span><span id="line-61"> return unitsPerPixelYAxis;</span> +<span class="source-line-no">062</span><span id="line-62"> }</span> +<span class="source-line-no">063</span><span id="line-63"></span> +<span class="source-line-no">064</span><span id="line-64"> private double toDouble(final String str) throws ImagingException {</span> +<span class="source-line-no">065</span><span id="line-65"> try {</span> +<span class="source-line-no">066</span><span id="line-66"> return Double.parseDouble(str);</span> +<span class="source-line-no">067</span><span id="line-67"> } catch (final NumberFormatException e) {</span> +<span class="source-line-no">068</span><span id="line-68"> throw new ImagingException("PNG sCAL error reading axis value - " + str);</span> +<span class="source-line-no">069</span><span id="line-69"> }</span> +<span class="source-line-no">070</span><span id="line-70"> }</span> +<span class="source-line-no">071</span><span id="line-71">}</span> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +</pre> +</div> +</main> +</body> +</html> \ No newline at end of file Added: websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/chunks/PngChunkText.html ============================================================================== --- websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/chunks/PngChunkText.html (added) +++ websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/chunks/PngChunkText.html Wed May 15 13:26:03 2024 @@ -0,0 +1,145 @@ +<!DOCTYPE HTML> +<html lang="en"> +<head> +<!-- Generated by javadoc (17) --> +<title>Source code</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta name="description" content="source: package: org.apache.commons.imaging.formats.png.chunks, class: PngChunkText"> +<meta name="generator" content="javadoc/SourceToHTMLConverter"> +<link rel="stylesheet" type="text/css" href="../../../../../../../../stylesheet.css" title="Style"> +</head> +<body class="source-page"> +<main role="main"> +<div class="source-container"> +<pre><span class="source-line-no">001</span><span id="line-1">/*</span> +<span class="source-line-no">002</span><span id="line-2"> * Licensed to the Apache Software Foundation (ASF) under one or more</span> +<span class="source-line-no">003</span><span id="line-3"> * contributor license agreements. See the NOTICE file distributed with</span> +<span class="source-line-no">004</span><span id="line-4"> * this work for additional information regarding copyright ownership.</span> +<span class="source-line-no">005</span><span id="line-5"> * The ASF licenses this file to You under the Apache License, Version 2.0</span> +<span class="source-line-no">006</span><span id="line-6"> * (the "License"); you may not use this file except in compliance with</span> +<span class="source-line-no">007</span><span id="line-7"> * the License. You may obtain a copy of the License at</span> +<span class="source-line-no">008</span><span id="line-8"> *</span> +<span class="source-line-no">009</span><span id="line-9"> * http://www.apache.org/licenses/LICENSE-2.0</span> +<span class="source-line-no">010</span><span id="line-10"> *</span> +<span class="source-line-no">011</span><span id="line-11"> * Unless required by applicable law or agreed to in writing, software</span> +<span class="source-line-no">012</span><span id="line-12"> * distributed under the License is distributed on an "AS IS" BASIS,</span> +<span class="source-line-no">013</span><span id="line-13"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span> +<span class="source-line-no">014</span><span id="line-14"> * See the License for the specific language governing permissions and</span> +<span class="source-line-no">015</span><span id="line-15"> * limitations under the License.</span> +<span class="source-line-no">016</span><span id="line-16"> */</span> +<span class="source-line-no">017</span><span id="line-17">package org.apache.commons.imaging.formats.png.chunks;</span> +<span class="source-line-no">018</span><span id="line-18"></span> +<span class="source-line-no">019</span><span id="line-19">import java.nio.charset.StandardCharsets;</span> +<span class="source-line-no">020</span><span id="line-20">import java.util.logging.Level;</span> +<span class="source-line-no">021</span><span id="line-21">import java.util.logging.Logger;</span> +<span class="source-line-no">022</span><span id="line-22"></span> +<span class="source-line-no">023</span><span id="line-23">import org.apache.commons.imaging.ImagingException;</span> +<span class="source-line-no">024</span><span id="line-24">import org.apache.commons.imaging.common.BinaryFunctions;</span> +<span class="source-line-no">025</span><span id="line-25">import org.apache.commons.imaging.formats.png.AbstractPngText;</span> +<span class="source-line-no">026</span><span id="line-26"></span> +<span class="source-line-no">027</span><span id="line-27">public class PngChunkText extends AbstractPngTextChunk {</span> +<span class="source-line-no">028</span><span id="line-28"></span> +<span class="source-line-no">029</span><span id="line-29"> private static final Logger LOGGER = Logger.getLogger(PngChunkText.class.getName());</span> +<span class="source-line-no">030</span><span id="line-30"></span> +<span class="source-line-no">031</span><span id="line-31"> private final String keyword;</span> +<span class="source-line-no">032</span><span id="line-32"> private final String text;</span> +<span class="source-line-no">033</span><span id="line-33"></span> +<span class="source-line-no">034</span><span id="line-34"> public PngChunkText(final int length, final int chunkType, final int crc, final byte[] bytes) throws ImagingException {</span> +<span class="source-line-no">035</span><span id="line-35"> super(length, chunkType, crc, bytes);</span> +<span class="source-line-no">036</span><span id="line-36"> final int index = BinaryFunctions.findNull(bytes, "PNG tEXt chunk keyword is not terminated.");</span> +<span class="source-line-no">037</span><span id="line-37"> keyword = new String(bytes, 0, index, StandardCharsets.ISO_8859_1);</span> +<span class="source-line-no">038</span><span id="line-38"> final int textLength = bytes.length - (index + 1);</span> +<span class="source-line-no">039</span><span id="line-39"> text = new String(bytes, index + 1, textLength, StandardCharsets.ISO_8859_1);</span> +<span class="source-line-no">040</span><span id="line-40"> if (LOGGER.isLoggable(Level.FINEST)) {</span> +<span class="source-line-no">041</span><span id="line-41"> LOGGER.finest("Keyword: " + keyword);</span> +<span class="source-line-no">042</span><span id="line-42"> LOGGER.finest("Text: " + text);</span> +<span class="source-line-no">043</span><span id="line-43"> }</span> +<span class="source-line-no">044</span><span id="line-44"> }</span> +<span class="source-line-no">045</span><span id="line-45"></span> +<span class="source-line-no">046</span><span id="line-46"> @Override</span> +<span class="source-line-no">047</span><span id="line-47"> public AbstractPngText getContents() {</span> +<span class="source-line-no">048</span><span id="line-48"> return new AbstractPngText.Text(keyword, text);</span> +<span class="source-line-no">049</span><span id="line-49"> }</span> +<span class="source-line-no">050</span><span id="line-50"></span> +<span class="source-line-no">051</span><span id="line-51"> /**</span> +<span class="source-line-no">052</span><span id="line-52"> * @return Returns the keyword.</span> +<span class="source-line-no">053</span><span id="line-53"> */</span> +<span class="source-line-no">054</span><span id="line-54"> @Override</span> +<span class="source-line-no">055</span><span id="line-55"> public String getKeyword() {</span> +<span class="source-line-no">056</span><span id="line-56"> return keyword;</span> +<span class="source-line-no">057</span><span id="line-57"> }</span> +<span class="source-line-no">058</span><span id="line-58"></span> +<span class="source-line-no">059</span><span id="line-59"> /**</span> +<span class="source-line-no">060</span><span id="line-60"> * @return Returns the text.</span> +<span class="source-line-no">061</span><span id="line-61"> */</span> +<span class="source-line-no">062</span><span id="line-62"> @Override</span> +<span class="source-line-no">063</span><span id="line-63"> public String getText() {</span> +<span class="source-line-no">064</span><span id="line-64"> return text;</span> +<span class="source-line-no">065</span><span id="line-65"> }</span> +<span class="source-line-no">066</span><span id="line-66"></span> +<span class="source-line-no">067</span><span id="line-67">}</span> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +</pre> +</div> +</main> +</body> +</html> \ No newline at end of file Added: websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/chunks/PngChunkZtxt.html ============================================================================== --- websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/chunks/PngChunkZtxt.html (added) +++ websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/chunks/PngChunkZtxt.html Wed May 15 13:26:03 2024 @@ -0,0 +1,158 @@ +<!DOCTYPE HTML> +<html lang="en"> +<head> +<!-- Generated by javadoc (17) --> +<title>Source code</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta name="description" content="source: package: org.apache.commons.imaging.formats.png.chunks, class: PngChunkZtxt"> +<meta name="generator" content="javadoc/SourceToHTMLConverter"> +<link rel="stylesheet" type="text/css" href="../../../../../../../../stylesheet.css" title="Style"> +</head> +<body class="source-page"> +<main role="main"> +<div class="source-container"> +<pre><span class="source-line-no">001</span><span id="line-1">/*</span> +<span class="source-line-no">002</span><span id="line-2"> * Licensed to the Apache Software Foundation (ASF) under one or more</span> +<span class="source-line-no">003</span><span id="line-3"> * contributor license agreements. See the NOTICE file distributed with</span> +<span class="source-line-no">004</span><span id="line-4"> * this work for additional information regarding copyright ownership.</span> +<span class="source-line-no">005</span><span id="line-5"> * The ASF licenses this file to You under the Apache License, Version 2.0</span> +<span class="source-line-no">006</span><span id="line-6"> * (the "License"); you may not use this file except in compliance with</span> +<span class="source-line-no">007</span><span id="line-7"> * the License. You may obtain a copy of the License at</span> +<span class="source-line-no">008</span><span id="line-8"> *</span> +<span class="source-line-no">009</span><span id="line-9"> * http://www.apache.org/licenses/LICENSE-2.0</span> +<span class="source-line-no">010</span><span id="line-10"> *</span> +<span class="source-line-no">011</span><span id="line-11"> * Unless required by applicable law or agreed to in writing, software</span> +<span class="source-line-no">012</span><span id="line-12"> * distributed under the License is distributed on an "AS IS" BASIS,</span> +<span class="source-line-no">013</span><span id="line-13"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span> +<span class="source-line-no">014</span><span id="line-14"> * See the License for the specific language governing permissions and</span> +<span class="source-line-no">015</span><span id="line-15"> * limitations under the License.</span> +<span class="source-line-no">016</span><span id="line-16"> */</span> +<span class="source-line-no">017</span><span id="line-17">package org.apache.commons.imaging.formats.png.chunks;</span> +<span class="source-line-no">018</span><span id="line-18"></span> +<span class="source-line-no">019</span><span id="line-19">import java.io.ByteArrayInputStream;</span> +<span class="source-line-no">020</span><span id="line-20">import java.io.IOException;</span> +<span class="source-line-no">021</span><span id="line-21">import java.nio.charset.StandardCharsets;</span> +<span class="source-line-no">022</span><span id="line-22">import java.util.zip.InflaterInputStream;</span> +<span class="source-line-no">023</span><span id="line-23"></span> +<span class="source-line-no">024</span><span id="line-24">import org.apache.commons.imaging.ImagingException;</span> +<span class="source-line-no">025</span><span id="line-25">import org.apache.commons.imaging.common.Allocator;</span> +<span class="source-line-no">026</span><span id="line-26">import org.apache.commons.imaging.common.BinaryFunctions;</span> +<span class="source-line-no">027</span><span id="line-27">import org.apache.commons.imaging.formats.png.AbstractPngText;</span> +<span class="source-line-no">028</span><span id="line-28">import org.apache.commons.imaging.formats.png.PngConstants;</span> +<span class="source-line-no">029</span><span id="line-29">import org.apache.commons.io.IOUtils;</span> +<span class="source-line-no">030</span><span id="line-30"></span> +<span class="source-line-no">031</span><span id="line-31">public class PngChunkZtxt extends AbstractPngTextChunk {</span> +<span class="source-line-no">032</span><span id="line-32"></span> +<span class="source-line-no">033</span><span id="line-33"> private final String keyword;</span> +<span class="source-line-no">034</span><span id="line-34"> private final String text;</span> +<span class="source-line-no">035</span><span id="line-35"></span> +<span class="source-line-no">036</span><span id="line-36"> public PngChunkZtxt(final int length, final int chunkType, final int crc, final byte[] bytes) throws ImagingException, IOException {</span> +<span class="source-line-no">037</span><span id="line-37"> super(length, chunkType, crc, bytes);</span> +<span class="source-line-no">038</span><span id="line-38"></span> +<span class="source-line-no">039</span><span id="line-39"> int index = BinaryFunctions.findNull(bytes, "PNG zTXt chunk keyword is unterminated.");</span> +<span class="source-line-no">040</span><span id="line-40"> keyword = new String(bytes, 0, index, StandardCharsets.ISO_8859_1);</span> +<span class="source-line-no">041</span><span id="line-41"> index++;</span> +<span class="source-line-no">042</span><span id="line-42"></span> +<span class="source-line-no">043</span><span id="line-43"> final int compressionMethod = bytes[index++];</span> +<span class="source-line-no">044</span><span id="line-44"> if (compressionMethod != PngConstants.COMPRESSION_DEFLATE_INFLATE) {</span> +<span class="source-line-no">045</span><span id="line-45"> throw new ImagingException("PNG zTXt chunk has unexpected compression method: " + compressionMethod);</span> +<span class="source-line-no">046</span><span id="line-46"> }</span> +<span class="source-line-no">047</span><span id="line-47"></span> +<span class="source-line-no">048</span><span id="line-48"> final int compressedTextLength = bytes.length - index;</span> +<span class="source-line-no">049</span><span id="line-49"> final byte[] compressedText = Allocator.byteArray(compressedTextLength);</span> +<span class="source-line-no">050</span><span id="line-50"> System.arraycopy(bytes, index, compressedText, 0, compressedTextLength);</span> +<span class="source-line-no">051</span><span id="line-51"></span> +<span class="source-line-no">052</span><span id="line-52"> text = new String(IOUtils.toByteArray(new InflaterInputStream(new ByteArrayInputStream(compressedText))), StandardCharsets.ISO_8859_1);</span> +<span class="source-line-no">053</span><span id="line-53"> }</span> +<span class="source-line-no">054</span><span id="line-54"></span> +<span class="source-line-no">055</span><span id="line-55"> @Override</span> +<span class="source-line-no">056</span><span id="line-56"> public AbstractPngText getContents() {</span> +<span class="source-line-no">057</span><span id="line-57"> return new AbstractPngText.Ztxt(keyword, text);</span> +<span class="source-line-no">058</span><span id="line-58"> }</span> +<span class="source-line-no">059</span><span id="line-59"></span> +<span class="source-line-no">060</span><span id="line-60"> /**</span> +<span class="source-line-no">061</span><span id="line-61"> * Gets the keyword.</span> +<span class="source-line-no">062</span><span id="line-62"> *</span> +<span class="source-line-no">063</span><span id="line-63"> * @return the keyword.</span> +<span class="source-line-no">064</span><span id="line-64"> */</span> +<span class="source-line-no">065</span><span id="line-65"> @Override</span> +<span class="source-line-no">066</span><span id="line-66"> public String getKeyword() {</span> +<span class="source-line-no">067</span><span id="line-67"> return keyword;</span> +<span class="source-line-no">068</span><span id="line-68"> }</span> +<span class="source-line-no">069</span><span id="line-69"></span> +<span class="source-line-no">070</span><span id="line-70"> /**</span> +<span class="source-line-no">071</span><span id="line-71"> * Gets the text.</span> +<span class="source-line-no">072</span><span id="line-72"> *</span> +<span class="source-line-no">073</span><span id="line-73"> * @return the text.</span> +<span class="source-line-no">074</span><span id="line-74"> */</span> +<span class="source-line-no">075</span><span id="line-75"> @Override</span> +<span class="source-line-no">076</span><span id="line-76"> public String getText() {</span> +<span class="source-line-no">077</span><span id="line-77"> return text;</span> +<span class="source-line-no">078</span><span id="line-78"> }</span> +<span class="source-line-no">079</span><span id="line-79"></span> +<span class="source-line-no">080</span><span id="line-80">}</span> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +</pre> +</div> +</main> +</body> +</html> \ No newline at end of file Added: websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilter.html ============================================================================== --- websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilter.html (added) +++ websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilter.html Wed May 15 13:26:03 2024 @@ -0,0 +1,105 @@ +<!DOCTYPE HTML> +<html lang="en"> +<head> +<!-- Generated by javadoc (17) --> +<title>Source code</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta name="description" content="source: package: org.apache.commons.imaging.formats.png.scanlinefilters, interface: ScanlineFilter"> +<meta name="generator" content="javadoc/SourceToHTMLConverter"> +<link rel="stylesheet" type="text/css" href="../../../../../../../../stylesheet.css" title="Style"> +</head> +<body class="source-page"> +<main role="main"> +<div class="source-container"> +<pre><span class="source-line-no">001</span><span id="line-1">/*</span> +<span class="source-line-no">002</span><span id="line-2"> * Licensed to the Apache Software Foundation (ASF) under one or more</span> +<span class="source-line-no">003</span><span id="line-3"> * contributor license agreements. See the NOTICE file distributed with</span> +<span class="source-line-no">004</span><span id="line-4"> * this work for additional information regarding copyright ownership.</span> +<span class="source-line-no">005</span><span id="line-5"> * The ASF licenses this file to You under the Apache License, Version 2.0</span> +<span class="source-line-no">006</span><span id="line-6"> * (the "License"); you may not use this file except in compliance with</span> +<span class="source-line-no">007</span><span id="line-7"> * the License. You may obtain a copy of the License at</span> +<span class="source-line-no">008</span><span id="line-8"> *</span> +<span class="source-line-no">009</span><span id="line-9"> * http://www.apache.org/licenses/LICENSE-2.0</span> +<span class="source-line-no">010</span><span id="line-10"> *</span> +<span class="source-line-no">011</span><span id="line-11"> * Unless required by applicable law or agreed to in writing, software</span> +<span class="source-line-no">012</span><span id="line-12"> * distributed under the License is distributed on an "AS IS" BASIS,</span> +<span class="source-line-no">013</span><span id="line-13"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span> +<span class="source-line-no">014</span><span id="line-14"> * See the License for the specific language governing permissions and</span> +<span class="source-line-no">015</span><span id="line-15"> * limitations under the License.</span> +<span class="source-line-no">016</span><span id="line-16"> */</span> +<span class="source-line-no">017</span><span id="line-17">package org.apache.commons.imaging.formats.png.scanlinefilters;</span> +<span class="source-line-no">018</span><span id="line-18"></span> +<span class="source-line-no">019</span><span id="line-19">import java.io.IOException;</span> +<span class="source-line-no">020</span><span id="line-20"></span> +<span class="source-line-no">021</span><span id="line-21">import org.apache.commons.imaging.ImagingException;</span> +<span class="source-line-no">022</span><span id="line-22"></span> +<span class="source-line-no">023</span><span id="line-23">public interface ScanlineFilter {</span> +<span class="source-line-no">024</span><span id="line-24"></span> +<span class="source-line-no">025</span><span id="line-25"> void unfilter(byte[] src, byte[] dst, byte[] up) throws ImagingException, IOException;</span> +<span class="source-line-no">026</span><span id="line-26"></span> +<span class="source-line-no">027</span><span id="line-27">}</span> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +</pre> +</div> +</main> +</body> +</html> \ No newline at end of file Added: websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterAverage.html ============================================================================== --- websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterAverage.html (added) +++ websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterAverage.html Wed May 15 13:26:03 2024 @@ -0,0 +1,129 @@ +<!DOCTYPE HTML> +<html lang="en"> +<head> +<!-- Generated by javadoc (17) --> +<title>Source code</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta name="description" content="source: package: org.apache.commons.imaging.formats.png.scanlinefilters, class: ScanlineFilterAverage"> +<meta name="generator" content="javadoc/SourceToHTMLConverter"> +<link rel="stylesheet" type="text/css" href="../../../../../../../../stylesheet.css" title="Style"> +</head> +<body class="source-page"> +<main role="main"> +<div class="source-container"> +<pre><span class="source-line-no">001</span><span id="line-1">/*</span> +<span class="source-line-no">002</span><span id="line-2"> * Licensed to the Apache Software Foundation (ASF) under one or more</span> +<span class="source-line-no">003</span><span id="line-3"> * contributor license agreements. See the NOTICE file distributed with</span> +<span class="source-line-no">004</span><span id="line-4"> * this work for additional information regarding copyright ownership.</span> +<span class="source-line-no">005</span><span id="line-5"> * The ASF licenses this file to You under the Apache License, Version 2.0</span> +<span class="source-line-no">006</span><span id="line-6"> * (the "License"); you may not use this file except in compliance with</span> +<span class="source-line-no">007</span><span id="line-7"> * the License. You may obtain a copy of the License at</span> +<span class="source-line-no">008</span><span id="line-8"> *</span> +<span class="source-line-no">009</span><span id="line-9"> * http://www.apache.org/licenses/LICENSE-2.0</span> +<span class="source-line-no">010</span><span id="line-10"> *</span> +<span class="source-line-no">011</span><span id="line-11"> * Unless required by applicable law or agreed to in writing, software</span> +<span class="source-line-no">012</span><span id="line-12"> * distributed under the License is distributed on an "AS IS" BASIS,</span> +<span class="source-line-no">013</span><span id="line-13"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span> +<span class="source-line-no">014</span><span id="line-14"> * See the License for the specific language governing permissions and</span> +<span class="source-line-no">015</span><span id="line-15"> * limitations under the License.</span> +<span class="source-line-no">016</span><span id="line-16"> */</span> +<span class="source-line-no">017</span><span id="line-17">package org.apache.commons.imaging.formats.png.scanlinefilters;</span> +<span class="source-line-no">018</span><span id="line-18"></span> +<span class="source-line-no">019</span><span id="line-19">import java.io.IOException;</span> +<span class="source-line-no">020</span><span id="line-20"></span> +<span class="source-line-no">021</span><span id="line-21">import org.apache.commons.imaging.ImagingException;</span> +<span class="source-line-no">022</span><span id="line-22"></span> +<span class="source-line-no">023</span><span id="line-23">public class ScanlineFilterAverage implements ScanlineFilter {</span> +<span class="source-line-no">024</span><span id="line-24"> private final int bytesPerPixel;</span> +<span class="source-line-no">025</span><span id="line-25"></span> +<span class="source-line-no">026</span><span id="line-26"> public ScanlineFilterAverage(final int bytesPerPixel) {</span> +<span class="source-line-no">027</span><span id="line-27"> this.bytesPerPixel = bytesPerPixel;</span> +<span class="source-line-no">028</span><span id="line-28"> }</span> +<span class="source-line-no">029</span><span id="line-29"></span> +<span class="source-line-no">030</span><span id="line-30"> @Override</span> +<span class="source-line-no">031</span><span id="line-31"> public void unfilter(final byte[] src, final byte[] dst, final byte[] up) throws ImagingException, IOException {</span> +<span class="source-line-no">032</span><span id="line-32"> for (int i = 0; i < src.length; i++) {</span> +<span class="source-line-no">033</span><span id="line-33"> int raw = 0;</span> +<span class="source-line-no">034</span><span id="line-34"> final int prevIndex = i - bytesPerPixel;</span> +<span class="source-line-no">035</span><span id="line-35"> if (prevIndex >= 0) {</span> +<span class="source-line-no">036</span><span id="line-36"> raw = dst[prevIndex];</span> +<span class="source-line-no">037</span><span id="line-37"> }</span> +<span class="source-line-no">038</span><span id="line-38"></span> +<span class="source-line-no">039</span><span id="line-39"> int prior = 0;</span> +<span class="source-line-no">040</span><span id="line-40"> if (up != null) {</span> +<span class="source-line-no">041</span><span id="line-41"> prior = up[i];</span> +<span class="source-line-no">042</span><span id="line-42"> }</span> +<span class="source-line-no">043</span><span id="line-43"></span> +<span class="source-line-no">044</span><span id="line-44"> final int average = ((0xff & raw) + (0xff & prior)) / 2;</span> +<span class="source-line-no">045</span><span id="line-45"></span> +<span class="source-line-no">046</span><span id="line-46"> dst[i] = (byte) ((src[i] + average) % 256);</span> +<span class="source-line-no">047</span><span id="line-47"> // dst[i] = src[i];</span> +<span class="source-line-no">048</span><span id="line-48"> // dst[i] = (byte) 255;</span> +<span class="source-line-no">049</span><span id="line-49"> }</span> +<span class="source-line-no">050</span><span id="line-50"> }</span> +<span class="source-line-no">051</span><span id="line-51">}</span> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +</pre> +</div> +</main> +</body> +</html> \ No newline at end of file Added: websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterNone.html ============================================================================== --- websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterNone.html (added) +++ websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterNone.html Wed May 15 13:26:03 2024 @@ -0,0 +1,107 @@ +<!DOCTYPE HTML> +<html lang="en"> +<head> +<!-- Generated by javadoc (17) --> +<title>Source code</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta name="description" content="source: package: org.apache.commons.imaging.formats.png.scanlinefilters, class: ScanlineFilterNone"> +<meta name="generator" content="javadoc/SourceToHTMLConverter"> +<link rel="stylesheet" type="text/css" href="../../../../../../../../stylesheet.css" title="Style"> +</head> +<body class="source-page"> +<main role="main"> +<div class="source-container"> +<pre><span class="source-line-no">001</span><span id="line-1">/*</span> +<span class="source-line-no">002</span><span id="line-2"> * Licensed to the Apache Software Foundation (ASF) under one or more</span> +<span class="source-line-no">003</span><span id="line-3"> * contributor license agreements. See the NOTICE file distributed with</span> +<span class="source-line-no">004</span><span id="line-4"> * this work for additional information regarding copyright ownership.</span> +<span class="source-line-no">005</span><span id="line-5"> * The ASF licenses this file to You under the Apache License, Version 2.0</span> +<span class="source-line-no">006</span><span id="line-6"> * (the "License"); you may not use this file except in compliance with</span> +<span class="source-line-no">007</span><span id="line-7"> * the License. You may obtain a copy of the License at</span> +<span class="source-line-no">008</span><span id="line-8"> *</span> +<span class="source-line-no">009</span><span id="line-9"> * http://www.apache.org/licenses/LICENSE-2.0</span> +<span class="source-line-no">010</span><span id="line-10"> *</span> +<span class="source-line-no">011</span><span id="line-11"> * Unless required by applicable law or agreed to in writing, software</span> +<span class="source-line-no">012</span><span id="line-12"> * distributed under the License is distributed on an "AS IS" BASIS,</span> +<span class="source-line-no">013</span><span id="line-13"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span> +<span class="source-line-no">014</span><span id="line-14"> * See the License for the specific language governing permissions and</span> +<span class="source-line-no">015</span><span id="line-15"> * limitations under the License.</span> +<span class="source-line-no">016</span><span id="line-16"> */</span> +<span class="source-line-no">017</span><span id="line-17">package org.apache.commons.imaging.formats.png.scanlinefilters;</span> +<span class="source-line-no">018</span><span id="line-18"></span> +<span class="source-line-no">019</span><span id="line-19">import java.io.IOException;</span> +<span class="source-line-no">020</span><span id="line-20"></span> +<span class="source-line-no">021</span><span id="line-21">import org.apache.commons.imaging.ImagingException;</span> +<span class="source-line-no">022</span><span id="line-22"></span> +<span class="source-line-no">023</span><span id="line-23">public class ScanlineFilterNone implements ScanlineFilter {</span> +<span class="source-line-no">024</span><span id="line-24"></span> +<span class="source-line-no">025</span><span id="line-25"> @Override</span> +<span class="source-line-no">026</span><span id="line-26"> public void unfilter(final byte[] src, final byte[] dst, final byte[] up) throws ImagingException, IOException {</span> +<span class="source-line-no">027</span><span id="line-27"> System.arraycopy(src, 0, dst, 0, src.length);</span> +<span class="source-line-no">028</span><span id="line-28"> }</span> +<span class="source-line-no">029</span><span id="line-29">}</span> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +</pre> +</div> +</main> +</body> +</html> \ No newline at end of file Added: websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterPaeth.html ============================================================================== --- websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterPaeth.html (added) +++ websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterPaeth.html Wed May 15 13:26:03 2024 @@ -0,0 +1,155 @@ +<!DOCTYPE HTML> +<html lang="en"> +<head> +<!-- Generated by javadoc (17) --> +<title>Source code</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta name="description" content="source: package: org.apache.commons.imaging.formats.png.scanlinefilters, class: ScanlineFilterPaeth"> +<meta name="generator" content="javadoc/SourceToHTMLConverter"> +<link rel="stylesheet" type="text/css" href="../../../../../../../../stylesheet.css" title="Style"> +</head> +<body class="source-page"> +<main role="main"> +<div class="source-container"> +<pre><span class="source-line-no">001</span><span id="line-1">/*</span> +<span class="source-line-no">002</span><span id="line-2"> * Licensed to the Apache Software Foundation (ASF) under one or more</span> +<span class="source-line-no">003</span><span id="line-3"> * contributor license agreements. See the NOTICE file distributed with</span> +<span class="source-line-no">004</span><span id="line-4"> * this work for additional information regarding copyright ownership.</span> +<span class="source-line-no">005</span><span id="line-5"> * The ASF licenses this file to You under the Apache License, Version 2.0</span> +<span class="source-line-no">006</span><span id="line-6"> * (the "License"); you may not use this file except in compliance with</span> +<span class="source-line-no">007</span><span id="line-7"> * the License. You may obtain a copy of the License at</span> +<span class="source-line-no">008</span><span id="line-8"> *</span> +<span class="source-line-no">009</span><span id="line-9"> * http://www.apache.org/licenses/LICENSE-2.0</span> +<span class="source-line-no">010</span><span id="line-10"> *</span> +<span class="source-line-no">011</span><span id="line-11"> * Unless required by applicable law or agreed to in writing, software</span> +<span class="source-line-no">012</span><span id="line-12"> * distributed under the License is distributed on an "AS IS" BASIS,</span> +<span class="source-line-no">013</span><span id="line-13"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span> +<span class="source-line-no">014</span><span id="line-14"> * See the License for the specific language governing permissions and</span> +<span class="source-line-no">015</span><span id="line-15"> * limitations under the License.</span> +<span class="source-line-no">016</span><span id="line-16"> */</span> +<span class="source-line-no">017</span><span id="line-17">package org.apache.commons.imaging.formats.png.scanlinefilters;</span> +<span class="source-line-no">018</span><span id="line-18"></span> +<span class="source-line-no">019</span><span id="line-19">import java.io.IOException;</span> +<span class="source-line-no">020</span><span id="line-20"></span> +<span class="source-line-no">021</span><span id="line-21">import org.apache.commons.imaging.ImagingException;</span> +<span class="source-line-no">022</span><span id="line-22"></span> +<span class="source-line-no">023</span><span id="line-23">public class ScanlineFilterPaeth implements ScanlineFilter {</span> +<span class="source-line-no">024</span><span id="line-24"> private final int bytesPerPixel;</span> +<span class="source-line-no">025</span><span id="line-25"></span> +<span class="source-line-no">026</span><span id="line-26"> public ScanlineFilterPaeth(final int bytesPerPixel) {</span> +<span class="source-line-no">027</span><span id="line-27"> this.bytesPerPixel = bytesPerPixel;</span> +<span class="source-line-no">028</span><span id="line-28"> }</span> +<span class="source-line-no">029</span><span id="line-29"></span> +<span class="source-line-no">030</span><span id="line-30"> private int paethPredictor(final int a, final int b, final int c) {</span> +<span class="source-line-no">031</span><span id="line-31"> // ; a = left, b = above, c = upper left</span> +<span class="source-line-no">032</span><span id="line-32"> final int p = a + b - c; // ; initial estimate</span> +<span class="source-line-no">033</span><span id="line-33"> final int pa = Math.abs(p - a); // ; distances to a, b, c</span> +<span class="source-line-no">034</span><span id="line-34"> final int pb = Math.abs(p - b);</span> +<span class="source-line-no">035</span><span id="line-35"> final int pc = Math.abs(p - c);</span> +<span class="source-line-no">036</span><span id="line-36"> // ; return nearest of a,b,c,</span> +<span class="source-line-no">037</span><span id="line-37"> // ; breaking ties in order a,b,c.</span> +<span class="source-line-no">038</span><span id="line-38"> if (pa <= pb && pa <= pc) {</span> +<span class="source-line-no">039</span><span id="line-39"> return a;</span> +<span class="source-line-no">040</span><span id="line-40"> }</span> +<span class="source-line-no">041</span><span id="line-41"> if (pb <= pc) {</span> +<span class="source-line-no">042</span><span id="line-42"> return b;</span> +<span class="source-line-no">043</span><span id="line-43"> }</span> +<span class="source-line-no">044</span><span id="line-44"> return c;</span> +<span class="source-line-no">045</span><span id="line-45"> }</span> +<span class="source-line-no">046</span><span id="line-46"></span> +<span class="source-line-no">047</span><span id="line-47"> @Override</span> +<span class="source-line-no">048</span><span id="line-48"> public void unfilter(final byte[] src, final byte[] dst, final byte[] up) throws ImagingException, IOException {</span> +<span class="source-line-no">049</span><span id="line-49"> for (int i = 0; i < src.length; i++) {</span> +<span class="source-line-no">050</span><span id="line-50"> int left = 0;</span> +<span class="source-line-no">051</span><span id="line-51"> final int prevIndex = i - bytesPerPixel;</span> +<span class="source-line-no">052</span><span id="line-52"> if (prevIndex >= 0) {</span> +<span class="source-line-no">053</span><span id="line-53"> left = dst[prevIndex];</span> +<span class="source-line-no">054</span><span id="line-54"> }</span> +<span class="source-line-no">055</span><span id="line-55"></span> +<span class="source-line-no">056</span><span id="line-56"> int above = 0;</span> +<span class="source-line-no">057</span><span id="line-57"> if (up != null) {</span> +<span class="source-line-no">058</span><span id="line-58"> above = up[i];</span> +<span class="source-line-no">059</span><span id="line-59"> }</span> +<span class="source-line-no">060</span><span id="line-60"> // above = 255;</span> +<span class="source-line-no">061</span><span id="line-61"></span> +<span class="source-line-no">062</span><span id="line-62"> int upperLeft = 0;</span> +<span class="source-line-no">063</span><span id="line-63"> if (prevIndex >= 0 && up != null) {</span> +<span class="source-line-no">064</span><span id="line-64"> upperLeft = up[prevIndex];</span> +<span class="source-line-no">065</span><span id="line-65"> }</span> +<span class="source-line-no">066</span><span id="line-66"> // upperLeft = 255;</span> +<span class="source-line-no">067</span><span id="line-67"></span> +<span class="source-line-no">068</span><span id="line-68"> final int paethPredictor = paethPredictor(0xff & left, 0xff & above, 0xff & upperLeft);</span> +<span class="source-line-no">069</span><span id="line-69"></span> +<span class="source-line-no">070</span><span id="line-70"> dst[i] = (byte) ((src[i] + paethPredictor) % 256);</span> +<span class="source-line-no">071</span><span id="line-71"> // dst[i] = (byte) ((src[i] + paethPredictor) );</span> +<span class="source-line-no">072</span><span id="line-72"> // dst[i] = src[i];</span> +<span class="source-line-no">073</span><span id="line-73"></span> +<span class="source-line-no">074</span><span id="line-74"> // dst[i] = (byte) 0;</span> +<span class="source-line-no">075</span><span id="line-75"> }</span> +<span class="source-line-no">076</span><span id="line-76"> }</span> +<span class="source-line-no">077</span><span id="line-77">}</span> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +</pre> +</div> +</main> +</body> +</html> \ No newline at end of file Added: websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterSub.html ============================================================================== --- websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterSub.html (added) +++ websites/production/commons/content/proper/commons-imaging/apidocs/src-html/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterSub.html Wed May 15 13:26:03 2024 @@ -0,0 +1,126 @@ +<!DOCTYPE HTML> +<html lang="en"> +<head> +<!-- Generated by javadoc (17) --> +<title>Source code</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta name="description" content="source: package: org.apache.commons.imaging.formats.png.scanlinefilters, class: ScanlineFilterSub"> +<meta name="generator" content="javadoc/SourceToHTMLConverter"> +<link rel="stylesheet" type="text/css" href="../../../../../../../../stylesheet.css" title="Style"> +</head> +<body class="source-page"> +<main role="main"> +<div class="source-container"> +<pre><span class="source-line-no">001</span><span id="line-1">/*</span> +<span class="source-line-no">002</span><span id="line-2"> * Licensed to the Apache Software Foundation (ASF) under one or more</span> +<span class="source-line-no">003</span><span id="line-3"> * contributor license agreements. See the NOTICE file distributed with</span> +<span class="source-line-no">004</span><span id="line-4"> * this work for additional information regarding copyright ownership.</span> +<span class="source-line-no">005</span><span id="line-5"> * The ASF licenses this file to You under the Apache License, Version 2.0</span> +<span class="source-line-no">006</span><span id="line-6"> * (the "License"); you may not use this file except in compliance with</span> +<span class="source-line-no">007</span><span id="line-7"> * the License. You may obtain a copy of the License at</span> +<span class="source-line-no">008</span><span id="line-8"> *</span> +<span class="source-line-no">009</span><span id="line-9"> * http://www.apache.org/licenses/LICENSE-2.0</span> +<span class="source-line-no">010</span><span id="line-10"> *</span> +<span class="source-line-no">011</span><span id="line-11"> * Unless required by applicable law or agreed to in writing, software</span> +<span class="source-line-no">012</span><span id="line-12"> * distributed under the License is distributed on an "AS IS" BASIS,</span> +<span class="source-line-no">013</span><span id="line-13"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span> +<span class="source-line-no">014</span><span id="line-14"> * See the License for the specific language governing permissions and</span> +<span class="source-line-no">015</span><span id="line-15"> * limitations under the License.</span> +<span class="source-line-no">016</span><span id="line-16"> */</span> +<span class="source-line-no">017</span><span id="line-17">package org.apache.commons.imaging.formats.png.scanlinefilters;</span> +<span class="source-line-no">018</span><span id="line-18"></span> +<span class="source-line-no">019</span><span id="line-19">import java.io.IOException;</span> +<span class="source-line-no">020</span><span id="line-20"></span> +<span class="source-line-no">021</span><span id="line-21">import org.apache.commons.imaging.ImagingException;</span> +<span class="source-line-no">022</span><span id="line-22"></span> +<span class="source-line-no">023</span><span id="line-23">public class ScanlineFilterSub implements ScanlineFilter {</span> +<span class="source-line-no">024</span><span id="line-24"> private final int bytesPerPixel;</span> +<span class="source-line-no">025</span><span id="line-25"></span> +<span class="source-line-no">026</span><span id="line-26"> public ScanlineFilterSub(final int bytesPerPixel) {</span> +<span class="source-line-no">027</span><span id="line-27"> this.bytesPerPixel = bytesPerPixel;</span> +<span class="source-line-no">028</span><span id="line-28"> }</span> +<span class="source-line-no">029</span><span id="line-29"></span> +<span class="source-line-no">030</span><span id="line-30"> @Override</span> +<span class="source-line-no">031</span><span id="line-31"> public void unfilter(final byte[] src, final byte[] dst, final byte[] up) throws ImagingException, IOException {</span> +<span class="source-line-no">032</span><span id="line-32"> for (int i = 0; i < src.length; i++) {</span> +<span class="source-line-no">033</span><span id="line-33"> final int prevIndex = i - bytesPerPixel;</span> +<span class="source-line-no">034</span><span id="line-34"> if (prevIndex >= 0) {</span> +<span class="source-line-no">035</span><span id="line-35"> dst[i] = (byte) ((src[i] + dst[prevIndex]) % 256);</span> +<span class="source-line-no">036</span><span id="line-36"> // dst[i] = 0xff & (src[i] + src[prevIndex]);</span> +<span class="source-line-no">037</span><span id="line-37"> } else {</span> +<span class="source-line-no">038</span><span id="line-38"> dst[i] = src[i];</span> +<span class="source-line-no">039</span><span id="line-39"> }</span> +<span class="source-line-no">040</span><span id="line-40"></span> +<span class="source-line-no">041</span><span id="line-41"> // if (i<10)</span> +<span class="source-line-no">042</span><span id="line-42"> // System.out.println("\t" + i + ": " + dst[i] + " (" + src[i] +</span> +<span class="source-line-no">043</span><span id="line-43"> // ", " + prevIndex + ")");</span> +<span class="source-line-no">044</span><span id="line-44"></span> +<span class="source-line-no">045</span><span id="line-45"> // dst[i] = src[i];</span> +<span class="source-line-no">046</span><span id="line-46"> }</span> +<span class="source-line-no">047</span><span id="line-47"> }</span> +<span class="source-line-no">048</span><span id="line-48">}</span> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +</pre> +</div> +</main> +</body> +</html> \ No newline at end of file
