私はPDFファイルを作成するためにPDFシャープを使用しており、ページに画像を置くことに成功しました。PDFsharpで円形画像を描くには
byte[] imgBytes = interview.Application.CandidateImage.ImageBinary.ToArray();
Stream stream = new MemoryStream(imgBytes);
MemoryStream strm = new MemoryStream();
System.Drawing.Image img = System.Drawing.Image.FromStream(stream);
img.Save(strm, System.Drawing.Imaging.ImageFormat.Png);
XImage xfoto = XImage.FromGdiPlusImage(img);
gfx.DrawImage(xfoto, 30, 130, 300, 300);
これはバイナリイメージデータを取得し、DrawImageはこのイメージをストリームから取得して描画します。
HTML上でimg-circleクラスを使用したかのようにイメージを丸くしたいです。 PDFsharpでこれに対応する関数はありますか?そうでない場合は、どうすればいいですか?
EDIT:中心部で唯一の丸い部分が見えるように
void DrawClipPath(XGraphics gfx, PdfPage page)
{
XGraphicsPath path = new XGraphicsPath();
path.AddEllipse((page.Width/2) - 150, (page.Height/2) - 120, 300, 300);
gfx.Save();
gfx.IntersectClip(path);
// Draw a beam of dotted lines
XPen pen = XPens.DarkRed.Clone();
pen.DashStyle = XDashStyle.Dot;
for (double r = 0; r <= 90; r += 0.5)
gfx.DrawLine(pen, 0, 0, 250 * Math.Cos(r/90 * Math.PI), 250 * Math.Sin(r/90 * Math.PI));
gfx.Restore();
}
私はクリップパスが何をしているのかよく分かりません。サンプルコードを手伝ってもらえますか? – Dukakus17
私の編集を見ていただけますか?私はウェブサイトの例に従ったようなことをしました。しかし、イメージは同じままです。私のエラーを訂正できますか? – Dukakus17
@ user7677413私の編集を参照して、画像(またはクリップしたい他のオブジェクト)を描いた後にグラフィックを復元します。 – iPDFdev