ProjectionNode from Camera builds a node group that projects an image onto geometry according to how it appears in a camera's background. Its panel sits in the node tab of the shader editor's sidebar, where you pick a camera from a pulldown and choose one of the images set as that camera's background. If the chosen camera has no background image, the background items stay hidden.
Pressing the Make CameraProjection Nodes button creates a node group named after the camera and image, such as [camera name]_[image name]_Projection. You add it to the material shown in the shader editor, or bring it into another material through the group items in the Add menu, then wire its color output into a shader's color input to project the image. Images with alpha output the color from the color input or a combination of the two. A limit angle lets the color input take over when the angle between the camera and the projected surface grows larger than the set limit, and the blur setting turns that boundary into a gradation.
It works with Blender 4.2 LTS and newer and is released under the GNU General Public License v2.0 or later.