オブジェクト指向とかコードの最適化とか

Author:

プログラマーとして生きるには、本来オブジェクト指向を意識して書いて
コードも綺麗に最適化を施すべきなんだけど。

それはあくまで仕事であって、プライベートで書くプログラムとしてはとりあえず動けばいいや、と。
綺麗にすることにこだわって進まないとどうしようもない。
とりあえず動いてくれれば、次のバージョンで綺麗に直せばいい。

やっぱり仕事でやるプログラムよりもプライベートでやるプログラムのほうが楽。
プログラム自体は手段に過ぎないし、それは天職じゃない。
適職ではあるのかもしれないけど。
その先にある賞賛、注目、感謝、それこそが自分の求めてるもの。
自分のワクワク。喜びなんです。
それが天職なんですよね。

C# DrawImageメモ4

Author:

使い道わからないのも多いけどこれでDrawImageはラスト。

  // 21. 19にcallbackData追加
  g.DrawImage(img, pt, new Rectangle(0, 0, 200, 200), GraphicsUnit.Pixel, imgAttr, DrawImageAbort, 0);
  // 22. 20にcallbackData追加
  g.DrawImage(img, ptF, new RectangleF(30.0F, 30.0F, 100.0F, 100.0F), GraphicsUnit.Pixel, imgAttr, DrawImageAbort, 0);
  // 23. x, y, width, heightを指定して画像の一部分を描画
  g.DrawImage(img, new Rectangle(0, 0, 200, 200), 10.0F, 10.0F, 70.0F, 70.0F, GraphicsUnit.Pixel);
  // 24. 23のint版
  g.DrawImage(img, new Rectangle(0, 0, 200, 200), 10, 10, 70, 70, GraphicsUnit.Pixel);
  // 25. 23にimgAttr追加
  g.DrawImage(img, new Rectangle(0, 0, 200, 200), 10.0F, 10.0F, 70.0F, 70.0F, GraphicsUnit.Pixel, imgAttr);
  // 26. 24にimgAttr追加
  g.DrawImage(img, new Rectangle(0, 0, 200, 200), 10, 10, 70, 70, GraphicsUnit.Pixel, imgAttr);
  // 27. 25にcallback追加
  g.DrawImage(img, new Rectangle(0, 0, 200, 200), 10.0F, 10.0F, 70.0F, 70.0F, GraphicsUnit.Pixel, imgAttr, DrawImageAbort);
  // 28. 26にcallback追加
  g.DrawImage(img, new Rectangle(0, 0, 200, 200), 10, 10, 70, 70, GraphicsUnit.Pixel, imgAttr, DrawImageAbort);
  // 29. 27にIntPtr追加
  g.DrawImage(img, new Rectangle(0, 0, 200, 200), 10.0F, 10.0F, 70.0F, 70.0F, GraphicsUnit.Pixel, imgAttr, DrawImageAbort, ptr);
  // 30. 28にIntPtr追加
  g.DrawImage(img, new Rectangle(0, 0, 200, 200), 10, 10, 70, 70, GraphicsUnit.Pixel, imgAttr, DrawImageAbort, ptr);

C# DrawImageメモ3

Author:
  // 11. srcRectangleで切り取ってdstRectangleへ拡大縮小
  g.DrawImage(img, new Rectangle(0, 0, 200, 200), new Rectangle(0, 0, 50, 50), GraphicsUnit.Pixel);
  // 12. 11のRectangleF型
  g.DrawImage(img, new RectangleF(0.0F, 0.0F, 200.0F, 200.0F), new RectangleF(0.0F, 0.0F, 50.0F, 50.0F), GraphicsUnit.Pixel);
  // 13. 指定した位置に指定したサイズで
  g.DrawImage(img, 50.0F, 50.0F, 100.0F, 100.0F);
  // 14. 指定した位置に指定したRectangleで切り取って
  g.DrawImage(img, 50.0F, 50.0F, new RectangleF(30.0F, 30.0F, 100.0F, 100.0F), GraphicsUnit.Pixel);
  // 15. 13のInt型
  g.DrawImage(img, 50, 50, 100, 100);
  // 16. 14のInt型
  g.DrawImage(img, 50, 50, new Rectangle(30, 30, 100, 100), GraphicsUnit.Pixel);
  // 17. 9にimgAttrを追加
  g.DrawImage(img, pt, new Rectangle(30, 30, 100, 100), GraphicsUnit.Pixel, imgAttr);
  // 18. 17のFloat型
  g.DrawImage(img, ptF, new RectangleF(30.0F, 30.0F, 100.0F, 100.0F), GraphicsUnit.Pixel, imgAttr);
  // 19. 17にコールバック追加
  g.DrawImage(img, pt, new Rectangle(30, 30, 100, 100), GraphicsUnit.Pixel, imgAttr, DrawImageAbort);
  // 20. 18にコールバック追加
  g.DrawImage(img, ptF, new RectangleF(30.0F, 30.0F, 100.0F, 100.0F), GraphicsUnit.Pixel, imgAttr, DrawImageAbort);

C# DrawImageメモ2

Author:

前回のはどれ書いたかわからなくなったんでオーバーロード順に書き直す。

  // 1. (0, 0)にimgを描画
  g.DrawImage(img, new Point(0, 0));
  // 2. 平行四辺形を作成して描画
  g.DrawImage(img, pt);
  // 3. 1のPointF型
  g.DrawImage(img, new PointF(10.0F, 10.0F));
  // 4. 2のPointF型
  g.DrawImage(img, ptF);
  // 5. 場所とサイズを指定
  g.DrawImage(img, new Rectangle(0, 0, 50, 50));
  // 6. 5のRectangleF型
  g.DrawImage(img, new RectangleF(0.0F, 0.0F, 50.0F, 50.0F));
  // 7. 3をx, y分解
  g.DrawImage(img, 10.0F, 10.0F);
  // 8. 1をx, y分解
  g.DrawImage(img, 10, 10);
  // 9. 2と5の合成
  g.DrawImage(img, pt, new Rectangle(0, 0, 50, 50), GraphicsUnit.Pixel);
  // 10. 4と6の合成
  g.DrawImage(img, ptF, new RectangleF(0.0F, 0.0F, 50.0F, 50.0F), GraphicsUnit.Pixel);

C# DrawImageメモ1

Author:
  Graphics g = pictureBox1.CreateGraphics();
  img = Image.FromFile(@"V:\test.jpg");
  Point[] pt = {new Point(0, 0), new Point(90, 30), new Point(20, 100)};
  // (100, 0)にimgを描画
  g.DrawImage(img, new Point(100, 0));
  // (0, 0), (90, 30), (20, 100)から平行四辺形を作成して描画
  g.DrawImage(img, pt);
  // (0, 0)に100×100のサイズでimgを描画
  g.DrawImage(img, new Rectangle(0, 0, 100, 100));
  // (100, 0)にimgを描画
  g.DrawImage(img, 100, 0);
  // (0, 0), (90, 30), (20, 100)から平行四辺形を作成してimgの(0, 0)から(200, 200)までを描画
  g.DrawImage(img, pt, new Rectangle(0, 0, 200, 200), GraphicsUnit.Pixel);

C# ImageAttributes

Author:

5×5(実質4×4)の行列で表される。

R’ G’ B’ A’
R R R R
G G G G
B B B B
A A A A

透過させるには00、11、22、44を1に設定、33を透過率にする。
Rだけにするなら11、22を消せばいいのかな?

ColorMatrix matrix = new ColorMatrix(matrixElement);