What you need, at least I guess, is an implementation of mipmaps for your 2D trees.
A mipmap are a large frame in which the same object is present in different resolutions. For example, you can have a texture with a 1024x1024 tree image, next to it another one at 512x512, then a 256x256 one and so on... Then your tree object checks for the zoom level the user is currently experiencing (you can easily implement a method for that), and uses the right frame for rendering the tree.
Result is, if you zoom out enough won't need to draw a high-res image, whilst a 128x128 would be enough. On the other hand, if the user zooms in at a 10x level, he expects to see more detail than a 1x zoom view; and he would be bored to see just giant pixels, independently from smoothing filters (bilinear, trilinear...) applied.
So, actually, you draw inside the same box area (smaller or bigger due to zoom level), but:
- Drawing lower-quality images in a small box is faster than drawing a high-quality image inside the same box;
- Drawing high-res images when zooming in resolves the problem you asked for: better quality on zooming.
Also, always remember that downscaling when drawing is slower than upscaling; this is important to decide when a low-res frame should be replaced by a high-res frame (tipically you do this just before the low-res frame would be upscaled, in order to not lose visual quality on a gamer's point of view).
Sources: good old Wikipedia - Mipmap