在过去的几个小时里,我一直试图想出一种方法,在使用FileReference.upload();
方法上传图像文件之前为图像文件添加水印。上传工作已经开始。我只需要弄清楚如何在图像文件的右下方获得一个小水印(带有alpha透明度的PNG图像)。另一件事是,我不想要修改源文件。我只想在上传时添加水印。
您建议采用何种方法进行此类设置?我似乎也找不到任何预先制作的课程,我可以用它来做这件事。这不是一个非常常见的任务吗?并且没有我不能使用服务器端(PHP)来进行水印,因为我直接与服务的API通信,而不是通过我的服务器。
答案 0 :(得分:2)
您可以将水印(alpha图像)设置为比在组或框中上传图像更高的子索引,并且可以将这些容器保存为位图或jpeg图像。
<s:BorderContainer width="100%" height="100%" backgroundColor="0x3322ff" id="comp">
<s:Image source="{upload-image-source}" width="100%" height="100%"/>
<s:Image source="{water-mark-image-source(alpha png file)}" width="100%" height="100%"/>
</s:BorderContainer>
您可以将此容器另存为图像。
var bmpd:BitmapData = new BitmapData(comp.width,comp.height);
bmpd.draw(comp);
var jpgenc:JPEGEncoder = new JPEGEncoder(80);
var imgByteArray:ByteArray = jpgenc.encode(bmpd);
答案 1 :(得分:0)
基本上只需将图像和水印添加到BitmapData,然后使用PNG编码器(例如http://www.kaourantin.net/2005/10/png-encoder-in-as3.html)从结果图像中创建PNG。然后,您可以上传到您的服务器,原始图像仍然不会改变。