Lucas CHOLLET 
								
							 
						 
						
							
							
							
							
								
							
							
								272be6b20a 
								
							 
						 
						
							
							
								
								LibGfx/TIFF: Add support for LZW compression  
							
							
							
						 
						
							2023-11-12 13:56:27 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Lucas CHOLLET 
								
							 
						 
						
							
							
							
							
								
							
							
								4f5a0227e2 
								
							 
						 
						
							
							
								
								LibGfx/TIFF: Add support for the differencing predictor  
							
							... 
							
							
							
							The differencing predictor is a different way to encode pixels in TIFF
images. Every pixel is encoded as a difference with the previous column
of the image, except the first column, obviously.
This parameter is materialized by a new tag for which reading was also
implemented. 
							
						 
						
							2023-11-12 13:56:27 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nicolas Ramz 
								
							 
						 
						
							
							
							
							
								
							
							
								68e916490b 
								
							 
						 
						
							
							
								
								LibGfx/JPEGWriter: Fix crash on macOS when csize coefficient is 0  
							
							... 
							
							
							
							This fixes  #21108  
							
						 
						
							2023-11-09 16:07:28 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								a2f60911fe 
								
							 
						 
						
							
							
								
								AK: Rename GenericTraits to DefaultTraits  
							
							... 
							
							
							
							This feels like a more fitting name for something that provides the
default values for Traits. 
							
						 
						
							2023-11-09 10:05:51 -05:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Lucas CHOLLET 
								
							 
						 
						
							
							
							
							
								
							
							
								5e2b049de8 
								
							 
						 
						
							
							
								
								LibCompress/LZW: Use a LittleEndianBitStream  
							
							... 
							
							
							
							No need to manually implement bit stream logic when we have a helper for
this task. 
							
						 
						
							2023-11-08 18:19:34 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Lucas CHOLLET 
								
							 
						 
						
							
							
							
							
								
							
							
								00ad8419cf 
								
							 
						 
						
							
							
								
								LibGfx+LibCompress: Extract the LZW decoder and move it to LibCompress  
							
							... 
							
							
							
							Let's put this state-of-the-art decoder from the 80's in its own file in
order to reuse it with other formats, such as TIFF or PDF. 
							
						 
						
							2023-11-08 18:19:34 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Lucas CHOLLET 
								
							 
						 
						
							
							
							
							
								
							
							
								a86c0ac003 
								
							 
						 
						
							
							
								
								LibGfx/GIF: Use east-side const  
							
							
							
						 
						
							2023-11-08 18:19:34 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Ledbetter 
								
							 
						 
						
							
							
							
							
								
							
							
								b96a5f4265 
								
							 
						 
						
							
							
								
								LibGfx/ILBM: Avoid overflow when creating bitplane data buffer  
							
							
							
						 
						
							2023-11-08 09:36:01 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Ledbetter 
								
							 
						 
						
							
							
							
							
								
							
							
								5e1017bcf1 
								
							 
						 
						
							
							
								
								LibGfx/ILBM: Avoid buffer overrun when reading bitplane data  
							
							
							
						 
						
							2023-11-08 09:36:01 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Ledbetter 
								
							 
						 
						
							
							
							
							
								
							
							
								f56ae8c0e9 
								
							 
						 
						
							
							
								
								LibGfx/ILBM: Ensure CMAP chunk size matches expected value  
							
							... 
							
							
							
							The color map should be 3 bytes per pixel and should contain
`2^nPlanes` pixels. We now return an error if the color map isn't the
size we expect. 
							
						 
						
							2023-11-08 09:36:01 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Ledbetter 
								
							 
						 
						
							
							
							
							
								
							
							
								61eb754f63 
								
							 
						 
						
							
							
								
								LibGfx/ILBM: Add validation for header fields  
							
							... 
							
							
							
							We now exit early if a header field is set to a value that we don't
currently support. 
							
						 
						
							2023-11-08 09:36:01 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Ledbetter 
								
							 
						 
						
							
							
							
							
								
							
							
								bed7b33daa 
								
							 
						 
						
							
							
								
								LibGfx/ILBM: Don't attempt to decode a BODY chunk without a color map  
							
							... 
							
							
							
							While this isn't disallowed by the specification, it is not something
we currently support. Instead of crashing we now return an error in
this case. 
							
						 
						
							2023-11-08 09:36:01 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Ledbetter 
								
							 
						 
						
							
							
							
							
								
							
							
								75731f9c50 
								
							 
						 
						
							
							
								
								LibGfx/ILBM: Avoid buffer overruns when decompressing data  
							
							
							
						 
						
							2023-11-08 09:36:01 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Ledbetter 
								
							 
						 
						
							
							
							
							
								
							
							
								ae6c39e501 
								
							 
						 
						
							
							
								
								LibGfx/ILBM: Ensure decompressed body chunk data is the correct length  
							
							
							
						 
						
							2023-11-08 09:36:01 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Lucas CHOLLET 
								
							 
						 
						
							
							
							
							
								
							
							
								81794df280 
								
							 
						 
						
							
							
								
								LibGfx/TIFF: Add support for images with PackBits compression  
							
							
							
						 
						
							2023-11-08 09:28:36 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Lucas CHOLLET 
								
							 
						 
						
							
							
							
							
								
							
							
								472a886dfc 
								
							 
						 
						
							
							
								
								LibGfx/TIFF: Refactor the decoding loop  
							
							... 
							
							
							
							This is done to ease the introduction of the support of other
compressions. 
							
						 
						
							2023-11-08 09:28:36 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Lucas CHOLLET 
								
							 
						 
						
							
							
							
							
								
							
							
								75caccafa4 
								
							 
						 
						
							
							
								
								LibGfx: Add a TIFF loader  
							
							
							
						 
						
							2023-11-06 12:29:30 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Lucas CHOLLET 
								
							 
						 
						
							
							
							
							
								
							
							
								dc5bb5a4cc 
								
							 
						 
						
							
							
								
								LibGfx: Sort entries in the definition of ImagePluginInitializer  
							
							
							
						 
						
							2023-11-06 12:29:30 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Ledbetter 
								
							 
						 
						
							
							
							
							
								
							
							
								438e9e146c 
								
							 
						 
						
							
							
								
								LibGfx/JPEG: Refill reservoir if necessary when discarding bits  
							
							... 
							
							
							
							This condition was hit 157 times out of the 109,233 JPEG images in the
Govdocs1 corpus. This change allows all of these
images to load correctly. 
							
						 
						
							2023-11-05 09:01:15 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Ledbetter 
								
							 
						 
						
							
							
							
							
								
							
							
								9ed8c0b183 
								
							 
						 
						
							
							
								
								LibGfx/JPEG: Propagate errors when creating JPEGLoadingContext  
							
							... 
							
							
							
							This allows the JPEG fuzzer to make progress. 
							
						 
						
							2023-10-29 21:39:29 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Lucas CHOLLET 
								
							 
						 
						
							
							
							
							
								
							
							
								e721c74598 
								
							 
						 
						
							
							
								
								LibGfx: Provide an implementation for ImageDecoderPlugin::icc_data()  
							
							
							
						 
						
							2023-10-29 07:21:10 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Ledbetter 
								
							 
						 
						
							
							
							
							
								
							
							
								2311e28d63 
								
							 
						 
						
							
							
								
								LibGfx/BMPLoader: Mitigate potential overflows when decoding bitmap DIB  
							
							
							
						 
						
							2023-10-25 05:52:29 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Ledbetter 
								
							 
						 
						
							
							
							
							
								
							
							
								8ec26f3b54 
								
							 
						 
						
							
							
								
								LibGfx/BMPLoader: Account for header size when checking DIB bounds  
							
							
							
						 
						
							2023-10-25 05:52:29 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Ledbetter 
								
							 
						 
						
							
							
							
							
								
							
							
								023309fdc4 
								
							 
						 
						
							
							
								
								LibGfx/JPEGLoader: Check array access bounds when building lookup table  
							
							
							
						 
						
							2023-10-20 07:17:27 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									circl 
								
							 
						 
						
							
							
							
							
								
							
							
								a9208a18ca 
								
							 
						 
						
							
							
								
								LibGfx/BMPLoader: Make sure height passed to Gfx::Bitmap is positive  
							
							... 
							
							
							
							BMP files encode the direction of the rows with the sign of the height.
Our BMP decoder already makes all the proper checks, however when
constructing the Gfx::Bitmap, didn't actually make the height positive.
Boog neutralized :^) 
							
						 
						
							2023-10-19 08:31:36 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Ledbetter 
								
							 
						 
						
							
							
							
							
								
							
							
								f4a89c31c6 
								
							 
						 
						
							
							
								
								LibGfx/ILBM: Explicitly fail decoding if body chunk isn't present  
							
							... 
							
							
							
							Previously, the decoder would crash in this case. 
							
						 
						
							2023-10-17 10:24:27 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Ledbetter 
								
							 
						 
						
							
							
							
							
								
							
							
								9e3ee0e2b5 
								
							 
						 
						
							
							
								
								LibGfx/ILBM: Avoid buffer overrun when reading header chunk  
							
							
							
						 
						
							2023-10-15 08:37:27 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								a396bb0c0b 
								
							 
						 
						
							
							
								
								LibGfx: Remove indexed palette formats from Bitmap and Painter  
							
							... 
							
							
							
							Nobody was actually using these formats anymore, and this simplifies
and shrinks the code. :^) 
							
						 
						
							2023-10-12 07:39:05 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								bcbaad0b1d 
								
							 
						 
						
							
							
								
								LibGfx: Make BMP decoder always produce BGRA8888 or BGRx8888 bitmaps  
							
							... 
							
							
							
							This was the only remaining codec that produced IndexedN bitmaps.
By removing them, we'll be able to get rid of those formats and simplify
the Bitmap and Painter classes. 
							
						 
						
							2023-10-12 07:39:05 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Ledbetter 
								
							 
						 
						
							
							
							
							
								
							
							
								a673062084 
								
							 
						 
						
							
							
								
								LibGfx/BMPLoader: Ensure data offset cannot point past EOF  
							
							
							
						 
						
							2023-10-11 14:36:12 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Ledbetter 
								
							 
						 
						
							
							
							
							
								
							
							
								bc6638682d 
								
							 
						 
						
							
							
								
								LibGfx/BMPLoader: Ensure DIB size and offset are within expected range  
							
							
							
						 
						
							2023-10-10 05:50:02 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Ledbetter 
								
							 
						 
						
							
							
							
							
								
							
							
								4cc2fc4afa 
								
							 
						 
						
							
							
								
								LibGfx/PNGLoader: Remove redundant IHDR bit depth validation  
							
							
							
						 
						
							2023-10-08 10:46:00 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Ledbetter 
								
							 
						 
						
							
							
							
							
								
							
							
								bc6ae54b59 
								
							 
						 
						
							
							
								
								LibGfx/PNGLoader: Don't allow multiple consecutive IHDR chunks  
							
							
							
						 
						
							2023-10-08 10:46:00 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Ledbetter 
								
							 
						 
						
							
							
							
							
								
							
							
								1abc52a689 
								
							 
						 
						
							
							
								
								LibGfx/DDSLoader: Avoid integer overflow in decode_color_block()  
							
							
							
						 
						
							2023-10-06 22:18:27 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Ledbetter 
								
							 
						 
						
							
							
							
							
								
							
							
								b25efa219b 
								
							 
						 
						
							
							
								
								LibGfx/DDSLoader: Allow image dimensions that are not divisible by 4  
							
							
							
						 
						
							2023-10-06 22:18:27 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Ledbetter 
								
							 
						 
						
							
							
							
							
								
							
							
								b64ed060d8 
								
							 
						 
						
							
							
								
								LibGfx/PNGLoader: Add validation for IHDR width, height and bit depth  
							
							
							
						 
						
							2023-10-06 08:21:58 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nicolas Ramz 
								
							 
						 
						
							
							
							
							
								
							
							
								7b4b5b735b 
								
							 
						 
						
							
							
								
								LibGfx/ILBMLoader: Add support for EHB mode  
							
							
							
						 
						
							2023-10-03 16:09:55 -06:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Ledbetter 
								
							 
						 
						
							
							
							
							
								
							
							
								0b824ab7a6 
								
							 
						 
						
							
							
								
								LibGfx: Check bounds of color table access in TinyVGLoader  
							
							
							
						 
						
							2023-10-03 22:59:38 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Ledbetter 
								
							 
						 
						
							
							
							
							
								
							
							
								e6c1429311 
								
							 
						 
						
							
							
								
								LibGfx: Check bounds of color table accesses in BMPLoader  
							
							... 
							
							
							
							Previously, it was possible to crash the decoder by crafting a file
with invalid color table index values. 
							
						 
						
							2023-10-03 08:33:53 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Ledbetter 
								
							 
						 
						
							
							
							
							
								
							
							
								dd81bea9ef 
								
							 
						 
						
							
							
								
								LibGfx: Don't read past EOF in JPEGLoader  
							
							... 
							
							
							
							Previously, it was possible to pass JPEGLoader a crafted input which
would read past the end of the stream. We now return an error in such
cases. 
							
						 
						
							2023-10-02 20:09:25 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nicolas Ramz 
								
							 
						 
						
							
							
							
							
								
							
							
								b8f8b22aa5 
								
							 
						 
						
							
							
								
								LibGfx/ILBM: Add support for uncompressed files  
							
							
							
						 
						
							2023-09-14 21:00:54 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Sergey Bugaev 
								
							 
						 
						
							
							
							
							
								
							
							
								8ebddc1ff6 
								
							 
						 
						
							
							
								
								LibGfx: Misc 32-bit build fixes  
							
							
							
						 
						
							2023-09-06 07:21:07 -06:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									MacDue 
								
							 
						 
						
							
							
							
							
								
							
							
								bbf66ea055 
								
							 
						 
						
							
							
								
								LibGfx: Remove maximum size limit for decoded images  
							
							... 
							
							
							
							It is unlikely this is needed anymore, and as pointed out things should
now safely return OOM if the bitmap is too large to allocate.
Also, no recently added decoders respected this limit anyway.
Fixes  #20872  
							
						 
						
							2023-09-03 14:36:54 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								8a853278d0 
								
							 
						 
						
							
							
								
								LibCompress: Port ZlibDecompressor to AK::Stream  
							
							
							
						 
						
							2023-08-23 12:03:37 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nicolas Ramz 
								
							 
						 
						
							
							
							
							
								
							
							
								fda5590313 
								
							 
						 
						
							
							
								
								LibGfx/ILBM: Add an IFF-ILBM decoder :)  
							
							... 
							
							
							
							IFF was a generic container fileformat that was popular on the Amiga
since it was the only file format supported by Deluxe Paint.
ILBM is an image format popular in the late eighties/nineties
that uses the IFF container.
This is a very first version of the decoder that only supports
(byterun) compressed files with bpp <= 8.
Only the minimal chunks are decoded: CMAP, BODY, BMHD.
I am planning to add support for the following variants:
- EHB (32 colours + lighter 32 colours)
- HAM6 / HAM8 (special mode that allowed to display the whole Amiga
4096 colours / 262 144 colours palette)
- TrueColor (24bit)
Things that could be fun to do:
- Still images could be animated using color cycle information 
							
						 
						
							2023-08-15 18:36:11 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nicolas Ramz 
								
							 
						 
						
							
							
							
							
								
							
							
								66d6388b8a 
								
							 
						 
						
							
							
								
								LibGfx/WebP: Move FourCC into ImageDecoder.h  
							
							... 
							
							
							
							It will be shared with upcoming ILBM decoder. 
							
						 
						
							2023-08-15 18:36:11 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Lucas CHOLLET 
								
							 
						 
						
							
							
							
							
								
							
							
								ea85c99a01 
								
							 
						 
						
							
							
								
								LibGfx/JPEGXL: Add support for cropped images  
							
							... 
							
							
							
							Due to the way JPEG XL encodes its lossless images, it is sometimes
interesting to embed a large image and crop the result at the end. This
patch adds the functionality to crop a frame.
Note that JPEG XL supports image composition (almost like layers in
image editing software programs) and I tried to make these changes be
a step toward image composing. It's a small step as we are still unable
to read multiple frames, and we only support the `kReplace` blending
mode. 
							
						 
						
							2023-08-12 08:46:10 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Lucas CHOLLET 
								
							 
						 
						
							
							
							
							
								
							
							
								49c55447d9 
								
							 
						 
						
							
							
								
								LibGfx/JPEGXL: Put frame's image inside the Frame struct  
							
							... 
							
							
							
							The image was previously managed as an output parameter of the
`read_frame` function. This reorganisation also brings us closer to the
spec. As it is specified that each frame have its own image that will
later on compose a greater bitmap. 
							
						 
						
							2023-08-12 08:46:10 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Lucas CHOLLET 
								
							 
						 
						
							
							
							
							
								
							
							
								70e4d3a9b6 
								
							 
						 
						
							
							
								
								LibGfx/JPEGXL: Support images with the have_crop option in FrameHeader  
							
							... 
							
							
							
							This commit only allows us to read these values. The decoder will still
output the image as if no cropping was requested. 
							
						 
						
							2023-08-12 08:46:10 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Lucas CHOLLET 
								
							 
						 
						
							
							
							
							
								
							
							
								729e35ef21 
								
							 
						 
						
							
							
								
								LibGfx/JPEGXL: Remove unused variables in JPEGXLLoadingContext  
							
							... 
							
							
							
							These two variables are already fields of `Frame`, they make no sense at
the context scope. 
							
						 
						
							2023-08-12 00:15:58 +02:00