But when I load it to threejs and add it as my scene.background, the color goes to:
And I know that when I using a sRGB encoding for this image, it goes well. But now I wonder how can I export a image that suits the linear color space in three.js.
The default sRGB encoding is usually the right choice for an image containing non-HDR color data like this. Switching to linear would require more bits of precision (and a larger file) to have the right appearance. As long as the image is marked with texture.encoding = THREE.sRGBEncoding three.js can automatically convert it to linear if it needs to do linear lighting calculations etc.
If you really wanted to export a linear image though, you’d probably want to export as OpenEXR (.exr) instead. These will tend to be larger files, used for things like env maps, light maps, and maybe emissive maps.