I need to get a few non-georeferenced bmp files into QGIS, Grass or any open source platform. I have tfw files available with no indication on the projection but cannot seem to find a procedure (gdal) or other. Can someone point me in the right direction. The content of the tfw file looks like this.

  • 1
    Can you paste de content of some tfw file? You need some information: If you can not infer, by the values ​​of easting and northing, the CRS of the image, you must have ground control points in the image of which you know their coordinates in some system to be able to georeference it. Jan 24, 2019 at 0:02
  • those CRS should be in meters, with resolution nearly 69 cm per pixel ... leftist coordinate (x) is 378391 and uppermost coordinate is 5800514.33. I guest this file is in EPSG:3857 / or 3785 Pseudo Mercator / Google Web Map tile ... Am I correct?
    – Kampau Ocu
    Jan 24, 2019 at 7:39
  • 378391.91200000, 5800514.33000000 some where near Vichy, France? If so, it's in EPSG:3857
    – Kampau Ocu
    Jan 24, 2019 at 7:51

2 Answers 2


The world file for a BMP should have the extension ".bpw". The ".tfw" extension would be seen as linked to a tif file. If the image and world file are in fact linked, one extension must have been changed. Or perhaps the image was saved as a BMP separately.

You can try renaming the TFW to BPW to see if it works. Or rename the BMP to TIF. Or convert the BMP to a TIF of the same dimensions.

  • 1
    .bpw, .bmpw or .wld should work according to the gdal docs (which presumably holds true for QGIS)
    – mikewatt
    Jan 23, 2019 at 18:50
  • 1
    Changing the file extension to bpw led to a good geo-referencing along with setting the correct CRS (32433) for German helped.
    – Philipp R
    Jan 24, 2019 at 10:16
  • @PhilippR I think you mean EPSG:32633 (epsg.io/32633) and not EPSG:32433 (epsg.io/32433), if your location is germany Jun 28, 2021 at 13:01

I can't get you questions, but if you already change those TFW (world file for tiff file) files into WLD (generic but only work in gdal and QGIS) as answered by @Pooneil, then loading those BMP file into QGIS will ask you about CRS, and you doubt about which CRS to pick?

It would be easier if you know some of the predictable location of the BMP file first, since you need to know upperleft coordinates which will be:

line number 5 is left most x or longitude coordinate


line number 6 is upper most y or latitude coordinate.

If you see number greater than 90 or 180, there is higher chance that your projection is in meters, not in degrees. But if you see small number, ... probably WGS 84 / EPSG:4326

Line number 1 and number 4 is resolution per pixel.

If you know the width of those BMP in pixels (which easily measured by graphic editor), line number 1 is distance between left to right in the real world divided by number pixels in width ... or simply resolution per pixel

Line number 4 is distance between bottom to top in the real world divided by number of image_height_in_pixels.

World file is six line configuration, but only store resolution and coordinate of upperleft and skewing/rotating in line #2 and #3.

You need to create an additional .AUX.XML file to accompany your WLD file to store CRS, if you already guessing correct CRS.

If your file name is file1.bmp, your auxiliary file should be named as file1.bmp.aux.xml and if your CRS is WGS 84 / EPSG:4326, you can simply paste following line into your .bmp.aux.xml file:

  <SRS>GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]</SRS>

This auxiliary file is generic for every file with same SRS. You can copy-paste SRS definition from other georeferenced image with gdalinfo.

for other SRS / CRS, you need to change it accordingly.

Following auxiliary file is generic for every 3857:

  <SRS>PROJCS["WGS 84 / Pseudo-Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["X",EAST],AXIS["Y",NORTH],EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"],AUTHORITY["EPSG","3857"]]</SRS>

Hope this help.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.