2016-05-28 3 views
1

私はMicrosoft Vision APIを使い、C#を学び、Visionオブジェクトのプロパティの1つはイメージの「アクセントカラー」です。C#LinearGradientBrushビットマップを縦方向に繰り返す

解析された一連の画像から、リニアグラデーションで注文した色を表示したい - 青色が半分を占めるため、ほとんどの画像が青色であることをユーザーに示すことができるためですグラデーションなど

私は色相によって色を注文しており、線形勾配を生成することができるので、私はビットマップを塗りつぶしています。

しかし、デフォルトでは勾配が水平になっている、と私は垂直を必要とする - ので、私は、実際の勾配の罰金を回転させるが、全体の四角形を埋めるようには見えないLinearGradientBrush.RotateTransform(90)を使用しました、それが繰り返されます。これは私が結果として取得していますものです:

enter image description here

は、どのように私は私のビットマップのためのRectangleオブジェクトの全体の高さをいっぱいに垂直てLinearGradientを作成するのですか?ここで

は私のコードです:読み取りおよび任意の助け

private Bitmap CreateColorGradient(System.Drawing.Rectangle rect, System.Drawing.Color[] colors) 
    { 
     Bitmap gradient = new Bitmap(rect.Width, rect.Height); 

     LinearGradientBrush br = new LinearGradientBrush(rect, System.Drawing.Color.White, System.Drawing.Color.White, 0, false); 
     ColorBlend cb = new ColorBlend(); 

     // Positions 
     List<float> positions = new List<float>(); 
     for (int i = 0; i < colors.Length; i++) positions.Add((float)i/(colors.Length - 1)); 
     cb.Positions = positions.ToArray(); 

     cb.Colors = colors; 
     br.InterpolationColors = cb; 
     br.RotateTransform(90); 

     using (Graphics g = Graphics.FromImage(gradient)) 
      g.FillRectangle(br, rect); 

     return gradient; 
    } 

おかげ - あなたはより良い行うことができる私のコードで何かを見た場合にも、それを指摘してください、それは私が:)

を学ぶことができます

答えて

3

constructorangleパラメータを無視しています。そして、代わりにGrahicsオブジェクトを回転させると、ブラシの矩形はターゲットビットマップに正しくフィットせず、グラデーションで塗りつぶすこともできません。それは繰り返されます。

  • は、単にbr.RotateTransform(90);呼び出しを削除90
  • に角度を設定する修正するには。

ここではこれが左から中央のバージョンに結果を変更します。

enter image description hereenter image description hereenter image description here

我々はそれを見ている間、LinearGradientBrushWrapModeプロパティをメモを取るん。最初の画像に表示されるのは、デフォルトのWrapMode.Clampです。 Flipモードに切り替えると、しばしば正しい位置に最初のバージョンが表示されます。

それはWrapMode.TileFlipYのように見えますが、私はそれが実際に値WrapMode.TileFlipXWrapMode.TileFlipXYを取る回転を持ち帰ってきたので、:ありがとう br.WrapMode = WrapMode.TileFlipX;

+0

ブリリアントこれは素晴らしいですね! –

+0

問題ありません。 WrapModeに関する最後の発言を見てください。これはしばしば便利です。 – TaW

関連する問題