KLT vs DCT basis restriction error
Natural images can seem complicated. However, the set of humanly interpretable images is relatively limited, with respect to all possible images ($24^{x\textrm{millions of pixels}}$). 
There is a belief that their structure can be better summarized. Indeed, lossless compaction can achieve 2-3 factor ratios, and lossy compression about 8-16  with little perceivable loss.

Most of the present image compression methods (that I  know of) are based on some kind of interpolation/extrapolation schemes. The rationale is to predict some samples, and to code the hopefully smaller prediction errors either on less bits (lossless), or with less precision (lossy). Those schemes can be applied either in the original space domain, or in a transformed space: either on fixed bases (Fourier, discrete cosine transforms, wavelets, etc.), on adaptive bases (PCA, NMF, KLT), learnt dictionaries, machine learning or artificial intelligence dabases.

Adaptivity sounds sound. One can thus adapt to image features. Globally on images? Why not, but the computational prize can be important: eigen-algorithms can be $O(N^3)$. One can reduce the size to smaller image patches. You have to compute eigenvectors for each patch, passed on its second-ordre statistics (covariance). 
Then, less memory is required, and this can be parallelized easily. Adaptive bases are thought optimal in several cases to pack information. But they come with a price for compression. Since bases are different from patch to patch, one should code the eigenvectors and transmit them as well. For traditional rate/distortion rates, this is not favorable.

So is there a good-enough fixed-basis? Among the many choices, it turned out than one discrete cosine transform, the DCT-II, could do a good job, either theoretically or practically. This is celebrated in a 1974 paper by N. Ahmed et al.: Discrete cosine transform
It is better suited to small patches, and possesses fast algorithms. There are other options, adaptations, but let's keep it simple for now.

So, assuming that one is working on patches, and computing covariance, DCT should be close to KLT in energy, and somehow better as one does not have to code vectors.

Below are previous answers related to properties of the DCT


How to understand the de-correlation property of DCT? What does de-correlation mean?
Could a DCT be used for an audio magnitude spectrum rather than DFT?
Why do we use scaling factors in DCT? Are they important?
Number of cosine waves in DCT
How to get the DCT energy distribution image in MATLAB,or we may call it the DCT coefficients distribution image?