# Ign 7.9.12 - Inflated cache image size

**URL:** <https://forum.inductiveautomation.com/t/ign-7-9-12-inflated-cache-image-size/41287>\
**Category:** Ignition\
**Tags:** ignition79\
**Created:** [December 8, 2020, 9:27am UTC](https://forum.inductiveautomation.com/t/ign-7-9-12-inflated-cache-image-size/41287 "2020-12-08T09:27:43Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![sbrannen](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/sbrannen/32/3459_2.png) [@sbrannen](https://forum.inductiveautomation.com/u/sbrannen)\
**Post date:** [December 8, 2020, 9:27am UTC](https://forum.inductiveautomation.com/t/ign-7-9-12-inflated-cache-image-size/41287/1 "2020-12-08T09:27:43Z")

</div>

Seasons greetings 🎄

Has anyone noticed that images are grossly inflated in the client cache? I use [PNGQuant](https://pngquant.org/) to compress my .png images (which is really good and extremely fast, btw). I expected that Ignition would inflate somewhat for actual image object dimensions, but 1200% bigger? What is the image processor in Ignition? I think there should probably be options for compression percentages (yes I know compression can be slow). Also, if the original image is the correct size for the full screen client image object, then why would it cache a same-sized image that is significantly larger? I imagine there are technical reasons for all this, but it seems a bit heavy.

The original is the 20k files, but the cached images are quite a bit larger.

 ![InflatedImages](https://us1.discourse-cdn.com/inductiveautomation/original/3X/3/8/388f3a32e82f2b053e2707567a92737a55b3ea42.png)  
Although this is not significant for projects containing few images, my current project has over 10k images which are changed out at fairly fast intervals... as quick as 50msec. Not only is size an issue, but the speed of the image processing to make the cached image is quite slow which causes a "jerkiness" the first time a client displays the images.

Can someone explain the "Load In Background" behavior on the Image object a bit better than the manual? What would be the advantage/disadvantage of using this option.

> _Ign 7.9 Manual: Controls whether or not the image loading takes place on the UI thread or a background thread_.

Thanks  
Steve

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [December 8, 2020, 1:36pm UTC](https://forum.inductiveautomation.com/t/ign-7-9-12-inflated-cache-image-size/41287/2 "2020-12-08T13:36:48Z")

</div>

I don’t know the internal mechanism, but it would be pointless to cache as anything other than 24bpp or 32bpp full size, cuz that’s what Swing needs to display. Have you inspected the cache files content?

---

<div class="post-metadata">

**Author:** ![sbrannen](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/sbrannen/32/3459_2.png) [@sbrannen](https://forum.inductiveautomation.com/u/sbrannen)\
**Post date:** [December 8, 2020, 1:57pm UTC](https://forum.inductiveautomation.com/t/ign-7-9-12-inflated-cache-image-size/41287/3 "2020-12-08T13:57:46Z")

</div>

Hey Phil…

Dang Java! That explains the giant leap in size as mine are indexed 8bpp. The reason I compress is because there are SO many images and it takes forever on my remote connection to upload. That snip in the post is from the image cache.

Thx

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [December 8, 2020, 2:01pm UTC](https://forum.inductiveautomation.com/t/ign-7-9-12-inflated-cache-image-size/41287/4 "2020-12-08T14:01:47Z")

</div>

I recommend you not use the image object. Script your operation with the paintable canvas, where a background thread decompresses/scales your PNGs and delivers to a JComponent client property. No cache on disk. (Pointless if changing often, IMNSHO.)

---

<div class="post-metadata">

**Author:** ![sbrannen](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/sbrannen/32/3459_2.png) [@sbrannen](https://forum.inductiveautomation.com/u/sbrannen)\
**Post date:** [December 8, 2020, 2:15pm UTC](https://forum.inductiveautomation.com/t/ign-7-9-12-inflated-cache-image-size/41287/5 "2020-12-08T14:15:21Z")

</div>

Hmm… Interesting. I will have to do some experimenting with that! This is a faux 3D animation script for manufacturing operations hidden from operator view that display the images based on servo positioning. Exactly like one of those books where you flip the pages to simulate animation.

Thanks for the tip.

Cheers  
Steve

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [December 8, 2020, 2:50pm UTC](https://forum.inductiveautomation.com/t/ign-7-9-12-inflated-cache-image-size/41287/6 "2020-12-08T14:50:06Z")

</div>

Huh. I would pass the positioning information to the client and generate the animation completely with the paintable canvas.

---

<div class="post-metadata">

**Author:** ![sbrannen](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/sbrannen/32/3459_2.png) [@sbrannen](https://forum.inductiveautomation.com/u/sbrannen)\
**Post date:** [December 8, 2020, 3:00pm UTC](https://forum.inductiveautomation.com/t/ign-7-9-12-inflated-cache-image-size/41287/7 "2020-12-08T15:00:06Z")

</div>

With a 6 axis robot? This has 3D rotation with perspective. If the canvas can do that with what I have below, then I am truly out of the loop. 🙀

 ![Capture](https://us1.discourse-cdn.com/inductiveautomation/original/3X/8/9/89381d3bd21621b510b1f8f333086a8f53b7ad4e.png)

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [December 8, 2020, 3:00pm UTC](https://forum.inductiveautomation.com/t/ign-7-9-12-inflated-cache-image-size/41287/8 "2020-12-08T15:00:45Z")

</div>

You can use the canvas to render/display your existing images, not paint new ones from scratch.

---

<div class="post-metadata">

**Author:** ![sbrannen](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/sbrannen/32/3459_2.png) [@sbrannen](https://forum.inductiveautomation.com/u/sbrannen)\
**Post date:** [December 8, 2020, 3:04pm UTC](https://forum.inductiveautomation.com/t/ign-7-9-12-inflated-cache-image-size/41287/9 "2020-12-08T15:04:56Z")

</div>

Aha… I thought I must have misunderstood him. Like I told Phil, I am up for experimenting with it. If it turns out that real time rendering can give me cache speed smoothness, then I will definitely shift to that tech as the cache route is problematic for the client memory also.

Thx for the response.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [December 8, 2020, 3:05pm UTC](https://forum.inductiveautomation.com/t/ign-7-9-12-inflated-cache-image-size/41287/10 "2020-12-08T15:05:00Z")

</div>

That would be a bit much to do with the canvas. /:

---

<div class="post-metadata">

**Author:** ![Usha\_Vilash](https://avatars.discourse-cdn.com/v4/letter/u/b5a626/32.png) [@Usha\_Vilash](https://forum.inductiveautomation.com/u/Usha_Vilash)\
**Post date:** [January 3, 2025, 8:41am UTC](https://forum.inductiveautomation.com/t/ign-7-9-12-inflated-cache-image-size/41287/11 "2025-01-03T08:41:06Z")

</div>

Managing large image libraries can definitely get tricky with caching and processing. If compression is crucial, you might find tools like [jpegcompressor.com](https://jpegcompressor.com/) helpful for optimizing images before upload. While it won't directly address the caching issue, it could ease the strain on storage and processing.
