将php imagecopy转换为c#

时间:2014-12-25 08:51:30

标签: c# php image-processing php-gd

我正在尝试将以下PHP代码转换为c#但我仍然坚持使用c#上的imagecopy等效代码。我使用了Graphics.DrawImage,但似乎没有用。

有效的PHP代码并生成平滑的waved文本

$xp = $this->scale*$this->Xperiod*rand(1,3);
$k = rand(0, 100);
for ($i = 0; $i < ($this->width*$this->scale); $i++) {
    imagecopy($this->im, $this->im,
    $i-1, sin($k+$i/$xp) * ($this->scale*$this->Xamplitude),
    $i, 0, 1, $this->height*$this->scale);
}

我使用Graphics.ImageDraw编写的C#代码会产生糟糕的结果

g.DrawImage之前的变量是php imagecopy使用的变量。

int xp = scale * Xperiod * (new Random()).Next(1, 4);
int k = (new Random()).Next(1, 101);
for (int i = 0; i < (bitmap.Width * scale); i++)
{
    var dst_x = i - 1;
    var dst_y = Convert.ToInt32(Math.Sin(k + i / xp) * scale * Xamplitude);
    var src_x = i;
    var src_y = 0;
    var src_w = 1;
    var src_h = bitmap.Height * scale;
    g.DrawImage(bitmap, new Rectangle(dst_x, dst_y, 1, bitmap.Height), new Rectangle(src_x, src_y, src_w, src_h), System.Drawing.GraphicsUnit.Pixel);
}

C#的结果很糟糕

enter image description here

0 个答案:

没有答案