Improving the editor to embed images will go a long way, indeed.
For now, there are two ways to go about embedding a file upload in a html control. Base64 and API link.
The former is easier, more robust and the latter is more performant.
You can create a html-control column that uses an expression to embed the image.
Base64:
select
concat('<img src="data:image/',
case
when t1.img_upload like '%.png' then 'png'
when t1.img_upload like '%.svg' then 'svg'
when t1.img_upload like '%.jpg' then 'jpg'
--etc
end, ';base64,', cast('' as xml).value('xs:base64Binary(sql:column("t1.img_data"))', 'varchar(max)'), '">') as base64_html
from subject_with_cardlist t1
API link:
select
concat('<img src=../indicium/iam/product/subject_with_cardlist(', t1.id, ')/SOME_PROJECT.download_img_upload(file_id=null)>') as api_link_html
from subject_with_cardlist t1
The second one has a lot more variables that can break (for instance, when deploying to another environment.
The resulting html for base64 looks as following:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAAEFklEQVRYCe1Z20tUQRye2aOthZkp5F9ghQQJSWJJaong6rq7rgb1FkHUeyC9+BJI2EtQRBBCb0LmXnV9UfKhQCzDqOz2ENVLF6xNjbzs7vTN5uoZd8/Zs5d258Hl950zZ+b3m/m+OXPm7MwhZPu33QMZ9QDNKHo9uPFhY0HJj7LaiCnSTBg9TCirQtE+YNMo+0oZnUP5c/iN/97za3qyaTK06ZBeKiMBFo+t1kTIeZByovkyIBWbZ4w+MDE64He6nqQSqPZNS0C7234UvXmNUdakriyD9AQjpGfU4ZlJtQ6aSoDVb90VCSnXEXQRceh8HLNnYdR7u2itsGfo9NAfo9UixpirzWOrCjE6hAA+vo0Fpef1koaVbn/X8Bsj4eCT3M3qcpzEcPHCsxjIhQUxRK3+TvejZI0lFcDHOyoZB3YDubQFzFanAjbfU71GdQV0eDsORCKmx6igHMiHfSdh5fhI1/B7rcY1BbQGWkuUFTNXX6kVnKP8dyZTpMZn8y0mak9zJlFWd/QhIN/kQYHsxyi4yhOJkPAOWLwdNaaIaQoBCiCDhSOE1AQcntmtZAq2ZvBrJaz0Y9ZJm7zf7ubVxMHqccTlGcxQ0NP98G0BBIsbQm1u+xGQbxK8JLighDRb3PbqrVTiBMDhEiCjUQyJOG6CAMw8Zih1ysiec8L/JWf3/e4dPB2DIADTZj0KSgFZrXy5IFSnJicIQO83qAtlTOP5bCSqnyCAEVKtKpM1KXAUp1HKKrE4MURca6rUC9aLMTzFMiq8XIU7APLiMlCPTb7KKKtQNy0KIKRYXShpWvhXLAjAQwyTlLYGLUEAHuJFDT+ZshfUZAQB2A75pi6UMs2owFGchRjl69CDRojrzRpas41ejJE2oz6UcY7RJD8IdwAPwAueKTkEjoIATKMTkpMnWKeMqzkKAkJFy1MoDAKy2rw5rAi7eIKAMcvYCobRoKzswWsQm16rOG+YIIDnYuk2wM8SgiXiFidgfX9yTEIBI4bXxNhQ6sXD0gIRWAThmKJlZboU2+SL+l4x699V3B3g2dHdMMru8LQkuJWo9zm3hAJ4wdLPvZdxfgbk22bC5pUeLRKaAibP3VvGjthZBM4D+TK+tXiGz45aBDQF8ABs573F2QIsArk2vrlr0dsX5YR0BXCHEYdnmirhOqQ/A7myTwplddFnMUmLSQXweH+H/xVENCA9C/xvm8Fe6Amv3TtnpCFDAnhFEPFh51rhMbypb+I6BGTVUO8acGMpWFofcLo+Gq2cGnVU+7W5HIcoZX3IawfSqgNxMWOMEB/+SF4Z7XS/jmUaPWfUeHQXm9ELaNyJBsuAVCz6mRWLqLvrb/9UYjd8MxIQq0XjQ3cFyksBbkEQ/YLvXln/0M0r38Z2D2TQA38BlXkvFvnk0o0AAAAASUVORK5CYII=">
The resulting html for the API link looks as following:
<img src=../indicium/iam/product/subject_with_cardlist(8)/SOME_PROJECT.download_img_upload(file_id=null)>
Does this help?