gdal2tiles doesn't replace one set of nodata vales with another, it only allows you to override or set the nodata values for the source image. It reads the nodata values from the source image, if it has any, but the
--srcnodata parameter overrides it. It takes a comma-separated list of values, one for each source band, but if you supply fewer values than there are bands, it just repeats the values you gave it. So your parameters should replicate 255 for however many bands there are.
But because it doesn't do anything clever with the values you provide, if the source image has 0,0,0 as its nodata values, you're merely defining any pixels of 255,255,255 as nodata and your black pixels will be just that.
You will need to run your image through
gdalwarp first, using the
But what you really seem to be after is nothing to do with the conversion of the data, but the drawing of it, and that is really up to whichever application you have that does your rendering. After all, nodata isn't a colour, it's a special value and its up to you (or your software) to decide what to do with that special value.