2016-09-21 1 views
-4

私は以下の基準で100万のランダムでユニークな画像ファイル(.jpeg/tiff/png)を生成し、それを選択したフォルダにドロップする必要があります。C#コードを使用してランダムな大きな画像ファイルを生成するにはどうすればよいですか?

生成されるファイルは、 、サイズ(例えば、それぞれ100mb)ですが、任意のダミーのランダムな色やパターンなどがあります。

私はこれをC#または他のプログラミングテクニックを使って生成する方法はありますか?ここ

+0

It'sます。https://www.youtu be.com/watch?v=e-qltHrbqGE – Fruchtzwerg

+0

私はこのポストを見ることをお勧めします:http://www.codeguru.com/columns/dotnet/creating-images-from-scratch-in-c.htmlまた、 CPUの代わりにGPUを使用することを検討してください。 – Nestoraj

+1

**あなたは**あなた**に割り当てられているものを**なぜ行うべきですか?あなたはここで助けを得るためにいくつかの援助をしなければなりません。 – HimBromBeere

答えて

0

私は中央にランダムな「白色雑音」と(これもランダムであってもよい)指定されたテキストのJPEG画像を生成する高速ために1つのプロジェクトで使用するコードである:

private static void GenerateDummyJpegAt(string outputPath, string nameToEmbed, int width, int height) { 
     using (var bmp = new Bitmap(width, height, PixelFormat.Format24bppRgb)) { 
      BitmapData data = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.WriteOnly, bmp.PixelFormat); 
      byte[] noise = new byte[data.Width*data.Height*3]; 
      new Random().NextBytes(noise); // note that if you do that in a loop or from multiple threads - you may want to store this random in outside variable 
      Marshal.Copy(noise, 0, data.Scan0, noise.Length); 
      bmp.UnlockBits(data); 
      using (var g = Graphics.FromImage(bmp)) { 
       // draw white rectangle in the middle 
       g.FillRectangle(Brushes.White, 0, height/2 - 20, width, 40); 
       var fmt = new StringFormat(); 
       fmt.Alignment = StringAlignment.Center; 
       fmt.LineAlignment = StringAlignment.Center; 
       // draw text inside that rectangle 
       g.DrawString(nameToEmbed, SystemFonts.DefaultFont, Brushes.Black, new RectangleF(0, 0, bmp.Width, bmp.Height), fmt); 
      } 
      using (var fs = File.Create(outputPath)) { 
       bmp.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg); 
      } 
     } 
    } 

使用:

GenerateDummyJpegAt(@"G:\tmp\dummy.jpg", "Some random string", 800, 600); 

結果:Googleにハード

enter image description here

関連する問題