나는 변환을 사용하여 작업 솔루션을 가지고있다. 완벽하게 솔직히 말하면 100 % 컬러 매트릭스를 가지고 무엇을하는지 이해하지 못합니다. 그래서 제가 한 방법은 최적이 아닐 수도 있습니다. 다른 사람이 같은 문제에 부딪 힐 경우 아래 코드를 붙여 넣습니다.
기본적으로 변환은 투명 픽셀을 검정색으로, 채색 픽셀을 흰색으로 만듭니다. 그런 다음 흰색 픽셀에 MakeTransparent를 사용했습니다. 이 단계를 한 번에 할 수있는 방법이 있어야하지만 불행히도 오늘은 저를 넘어 설 것입니다.
감사합니다. chris- 나는 몇 시간 동안 검색 할 수있는 기법을 찾고 있었지만 나는 이것에 대해 아무 것도 발견하지 못했습니다. 변형 유형.
<%@ 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>
대단히 감사합니다. 나는 꼭 필요한 올바른 방향으로 밀었습니다. 나는 아래에 게시 할 솔루션을 가지고있다. –