如何使用alpha蒙版将两个字节数组图像合并到图像中。我想使用字节操作在alpha上添加一个图像。
如何为字节数组图像实现此目的?
答案 0 :(得分:1)
考虑到您使用的是真彩色格式(此处为32位 - ARGB),您可以采取以下措施。添加伪代码,以便它对任何语言都有用(实际上有点懒在Java中编写;))。
procedure TForm1.BrowserDocumentComplete(ASender: TObject; const pDisp: IDispatch; const URL: OleVariant);
var
I: Integer;
Document: IHTMLDocument2;
Tags: IHTMLElementCollection;
Element: IHTMLElement;
begin
if ASender is TWebBrowser then
begin
Document := TWebBrowser(ASender).Document as IHTMLDocument2;
if Assigned(Document) then
begin
... //Here Document.body.innerHtml is empty
end;
end;
end;
为了优化,
可以完全忽略为composedImage创建内存并覆盖任何一个输入图像(如果它适合你的情况)。
预先计算常用操作例:(1-image2 [i] .a)
上面应该让你潜入水中! ^ _ ^
答案 1 :(得分:0)
我有这个代码。您需要将图像转换为可绘制格式,但这很容易。
只需传入资源对象和2个drawable。
public static Bitmap GetOverlayedImage(Resources res, Drawable img1, Drawable img2) {
float den = res.getDisplayMetrics().density;
int dip = (int) (80 * den + 0.5f);
int sz = (int) (128 * den + 0.5f);
Drawable[] layers = new Drawable[2];
layers[0] = img1;
layers[1] = img2;
LayerDrawable layerDrawable = new LayerDrawable(layers);
layerDrawable.setLayerInset(1, dip, dip, 0, 00);
Bitmap b = Bitmap.createBitmap(sz, sz, Bitmap.Config.ARGB_8888);
layerDrawable.setBounds(0, 0, sz, sz);
layerDrawable.draw(new Canvas(b));
return b;
}