0

アップロードする前に画像に透かしを入れています。私が直面している問題は、画像が小さい場合、透かしが大きく見えることです..元の画像に従って透かし画像のサイズを変更したい..

例: 透かし画像は元の画像の 30% にする必要があります。私はC#でこれをやっています:

imageGraphics.FillRectangle(watermarkBrush, new Rectangle(new Point(x,y), new Size(watermarkImage.Width + 1, watermarkImage.Height)));

最初に画像サイズを取得し、それに応じて透かし画像サイズを変更するにはどうすればよいですか??

4

2 に答える 2

2

それでは...次のようなもの:

Bitmap yourImage = ...;
Bitmap yourWatermark = ...;

int newWaterWidth = (int)((float)yourImage.Width * .3);
int newWaterHeight = (int)((float)yourImage.Height* .3);


using(Bitmap resizedWaterm = new Bitmap(newWaterWidth, newWaterHeight))
using(Graphics g = Graphics.FromImage((Image)resizedWaterm))
{
  g.InterpolationMode = InterpolationMode.HighQualityBicubic;
  g.DrawImage(yourWatermark, 0, 0, newWaterWidth , newWaterHeight );
}

int x = ..., y = ...;
using(Graphics g2 = Graphics.FromImage((Image)resizedWaterm))
{
  g2.FillRectangle(watermarkBrush, new Rectangle(new Point(x, y), new Size(watermarkImage.Width + 1, watermarkImage.Height)));
}

(テストされていません。... ドットにも値を入力する必要があります)

サイズ変更のコード:品質を落とさずに画像のサイズを変更する

お役に立てれば!

于 2013-05-02T07:59:37.387 に答える