### Godot version

5ee983188de97ae027f9b9c1443438063f708a7e

### System information

Windows 11

### Issue description

Godot editor will throw an error and fail to generate preview icons for terrain tiles which use a base image which is not RGBA8 format.
`core\io\image.cpp:2788 - Condition "format != p_src->format" is true.`

### Steps to reproduce

- Import a non-RGBA8 image into Godot.
- Create a TileMap
- Create an associated TileSet
- Create a terrain for this tileset
- Add the image as an atlas
- Go to the paint tab
- Paint the terrain on the TileSet
- An error will occur any time terrains are edited in the TileSet editor or selected in the TileMap editor terrain tab.

### Minimal reproduction project

[tileset_terrain_bug.zip](https://github.com/godotengine/godot/files/13264213/tileset_terrain_bug.zip)

break;
							default:
								break;
						}
						if (terrain_mode == TileSet::TERRAIN_MODE_MATCH_CORNERS_AND_SIDES) {
							polygon = _get_half_offset_corner_or_side_terrain_peering_bit_polygon(tile_size, overlap, tile_offset_axis, bit);
						} else if (terrain_mode == TileSet::TERRAIN_MODE_MATCH_CORNERS) {
							polygon = _get_half_offset_corner_terrain_peering_bit_polygon(tile_size, overlap, tile_offset_axis, bit);
						} else { 
							polygon = _get_half_offset_side_terrain_peering_bit_polygon(tile_size, overlap, tile_offset_axis, bit);
						}
					}
					{
						Ref<ArrayMesh> mesh;
						mesh.instantiate();
						Vector<Vector2> uvs;
						uvs.resize(polygon.size());
						Vector<Color> colors;
						colors.resize(polygon.size());
						colors.fill(Color(1.0, 1.0, 1.0, 1.0));
						Array a;
						a.resize(Mesh::ARRAY_MAX);
						a[Mesh::ARRAY_VERTEX] = polygon;
						a[Mesh::ARRAY_TEX_UV] = uvs;
						a[Mesh::ARRAY_COLOR] = colors;
						a[Mesh::ARRAY_INDEX] = Geometry2D::triangulate_polygon(polygon);
						mesh->add_surface_from_arrays(Mesh::PRIMITIVE_TRIANGLES, a, Array(), Dictionary(), Mesh::ARRAY_FLAG_USE_2D_VERTICES);
						terrain_peering_bits_meshes[terrain_mode][bit] = mesh;
					}
				}