Confirming that I have just encountered a similar error in Delphi 10.3.1 Rio, loading a PNG image from file. It is an 8MB file. As background, I'm just updating a project that hasn't had this area of code touched for a more than a couple of years and the code and the image it was attempting to load both worked in a previous version of Delphi at that time.
The code looks the same as listed from Delphi 10.1 Berlin. In line 2330 of Vcl.Imaging.pngimage, the fillchar call has the correct BytesPerRow and Height, so IHDRData is populated, but ImageData is nil.
Details copied directly from IDE
System._FillChar(???,???,???)
Vcl.Imaging.pngimage.TChunkIHDR.PrepareImageData
Vcl.Imaging.pngimage.TChunkIHDR.LoadFromStream(???,(...),13)
Vcl.Imaging.pngimage.TPngImage.LoadFromStream($E2A3B58)
Vcl.Graphics.TGraphic.LoadFromFile(???)
Vcl.Graphics.TPicture.LoadFromFile$ActRec.$0$Body(???)
Vcl.Graphics.TPicture.Load(???,TPicture.LoadFromFile$ActRec($D4EBEB0) as TPicture.TLoadProc)
Vcl.Graphics.TPicture.LoadFromFile(???)