Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Tłumaczenie dodaje wartość do co najmniej jednego z czterech składników kolorów. Wpisy macierzy kolorów reprezentujące tłumaczenia są podane w poniższej tabeli.
Składnik do tłumaczenia | Element macierzy |
---|---|
Czerwony | [4][0] |
Zielony | [4][1] |
Niebieski | [4][2] |
Alfa | [4][3] |
Przykład
Poniższy przykład tworzy Image obiekt z ColorBars.bmp pliku. Następnie kod dodaje wartość 0,75 do czerwonego składnika każdego piksela na obrazie. Oryginalny obraz jest rysowany obok przekształconego obrazu.
Poniższa ilustracja przedstawia oryginalny obraz po lewej stronie i przekształcony obraz po prawej stronie:
W poniższej tabeli wymieniono wektory kolorów dla czterech pasków przed i po czerwonym tłumaczeniu. Należy pamiętać, że ponieważ maksymalna wartość składnika koloru wynosi 1, czerwony składnik w drugim wierszu nie zmienia się. (Podobnie minimalna wartość składnika koloru wynosi 0).
Oryginał | Przetłumaczony |
---|---|
Czarny (0, 0, 0, 1) | (0.75, 0, 0, 1) |
Czerwony (1, 0, 0, 1) | (1, 0, 0, 1) |
Zielony (0, 1, 0, 1) | (0.75, 1, 0, 1) |
Niebieski (0, 0, 1, 1) | (0.75, 0, 1, 1) |
Image image = new Bitmap("ColorBars.bmp");
ImageAttributes imageAttributes = new ImageAttributes();
int width = image.Width;
int height = image.Height;
float[][] colorMatrixElements = {
new float[] {1, 0, 0, 0, 0},
new float[] {0, 1, 0, 0, 0},
new float[] {0, 0, 1, 0, 0},
new float[] {0, 0, 0, 1, 0},
new float[] {.75f, 0, 0, 0, 1}};
ColorMatrix colorMatrix = new ColorMatrix(colorMatrixElements);
imageAttributes.SetColorMatrix(
colorMatrix,
ColorMatrixFlag.Default,
ColorAdjustType.Bitmap);
e.Graphics.DrawImage(image, 10, 10, width, height);
e.Graphics.DrawImage(
image,
new Rectangle(150, 10, width, height), // destination rectangle
0, 0, // upper-left corner of source rectangle
width, // width of source rectangle
height, // height of source rectangle
GraphicsUnit.Pixel,
imageAttributes);
Dim image As New Bitmap("ColorBars.bmp")
Dim imageAttributes As New ImageAttributes()
Dim width As Integer = image.Width
Dim height As Integer = image.Height
Dim colorMatrixElements As Single()() = { _
New Single() {1, 0, 0, 0, 0}, _
New Single() {0, 1, 0, 0, 0}, _
New Single() {0, 0, 1, 0, 0}, _
New Single() {0, 0, 0, 1, 0}, _
New Single() {0.75F, 0, 0, 0, 1}}
Dim colorMatrix As New ColorMatrix(colorMatrixElements)
imageAttributes.SetColorMatrix( _
colorMatrix, _
ColorMatrixFlag.Default, _
ColorAdjustType.Bitmap)
e.Graphics.DrawImage(image, 10, 10, width, height)
' Pass in the destination rectangle (2nd argument), the upper-left corner
' (3rd and 4th arguments), width (5th argument), and height (6th
' argument) of the source rectangle.
e.Graphics.DrawImage( _
image, _
New Rectangle(150, 10, width, height), _
0, 0, _
width, _
height, _
GraphicsUnit.Pixel, _
imageAttributes)
Kompilowanie kodu
Powyższy przykład jest przeznaczony do użycia z formularzami systemu Windows i wymaga PaintEventArgse
, który jest parametrem programu obsługi zdarzeń Paint. Zastąp ColorBars.bmp
ciąg nazwą pliku obrazu i ścieżką prawidłową w systemie.
Zobacz także
.NET Desktop feedback