Ok Ich habe eine funktionierende Lösung Transformationen. Um ganz ehrlich zu sein, ich verstehe nicht 100%, was ich mit den Farbmatrizen mache - die Art und Weise, wie ich das gemacht habe, ist vielleicht nicht optimal. Der unten eingefügte Code für den Fall, dass jemand anderes zum selben Problem kommt.
Grundsätzlich macht die Transformation die transparenten Pixel schwarz und die farbigen Pixel weiß. Ich habe dann MakeTransparent auf die weißen Pixel angewendet. Es sollte einen Weg geben, dies in einem einzigen Schritt zu tun, aber es ist heute jenseits von mir
Danke wieder chris- Ich hatte stundenlang gesucht, um eine Technik zu finden, die funktionieren würde, und ich hatte nichts darüber herausgefunden Art der Transformation.
<%@ page language="vb" contenttype="image/png" %>
<%@ Import Namespace="System.IO" %>
<%@ import namespace="system.drawing" %>
<%@ import namespace="system.drawing.imaging" %>
<%@ import namespace="system.drawing.drawing2d" %>
<script runat="server">
Sub Page_Load()
Dim tmpImage As Bitmap = Bitmap.FromFile(Server.MapPath("test.png"))
Dim input As Bitmap = New Bitmap(tmpImage.Width, tmpImage.Height, PixelFormat.Format32bppArgb)
Dim trans As New ColorMatrix(New Single()() _
{New Single() {0, 1, 1, 1, 0}, _
New Single() {1, 0, 1, 1, 0}, _
New Single() {1, 1, 0, 1, 0}, _
New Single() {1, 1, 1, 1, 0}, _
New Single() {0, 0, 0,255, 1}})
Dim attr As New ImageAttributes
Dim rc As New Rectangle(0, 0, input.Width, input.Height)
Dim out As New memorystream
Dim g As Graphics = Graphics.FromImage(input)
g.Clear(Color.Transparent)
attr.SetColorMatrix(trans, System.Drawing.Imaging.ColorMatrixFlag.Default, System.Drawing.Imaging.ColorAdjustType.Bitmap)
g.DrawImage(tmpImage, rc, 0, 0, input.Width, input.Height, GraphicsUnit.Pixel, attr)
input.makeTransparent(System.Drawing.Color.White)
input.Save(out, ImageFormat.Png)
g.Dispose()
input.Dispose()
tmpImage.Dispose()
out.WriteTo(Response.OutputStream)
End Sub
</script>
Vielen Dank Das war genau der Schub in die richtige Richtung, die ich brauchte. Ich habe jetzt eine Lösung, die ich unten posten werde. –