本文整理汇总了C#中System.Image.HasBorders方法的典型用法代码示例。如果您正苦于以下问题:C# Image.HasBorders方法的具体用法?C# Image.HasBorders怎么用?C# Image.HasBorders使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Image
的用法示例。
在下文中一共展示了Image.HasBorders方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AddImage
//.........这里部分代码省略.........
decodeparms.Put(PdfName.JBIG2GLOBALS, writer.GetReferenceJBIG2Globals(globals));
pimage.Put(PdfName.DECODEPARMS, decodeparms);
}
}
PdfWriter.CheckPdfIsoConformance(writer, PdfIsoKeys.PDFISOKEY_INLINE_IMAGE, pimage);
foreach (PdfName key in pimage.Keys)
{
if (!abrev.ContainsKey(key))
continue;
PdfObject value = pimage.Get(key);
String s = abrev[key];
content.Append(s);
bool check = true;
if (key.Equals(PdfName.COLORSPACE) && value.IsArray())
{
PdfArray ar = (PdfArray) value;
if (ar.Size == 4
&& PdfName.INDEXED.Equals(ar.GetAsName(0))
&& ar.GetPdfObject(1).IsName()
&& ar.GetPdfObject(2).IsNumber()
&& ar.GetPdfObject(3).IsString()
)
{
check = false;
}
}
if (check && key.Equals(PdfName.COLORSPACE) && !value.IsName())
{
PdfName cs = writer.GetColorspaceName();
PageResources prs = PageResources;
prs.AddColor(cs, writer.AddToBody(value).IndirectReference);
value = cs;
}
value.ToPdf(null, content);
content.Append('\n');
}
content.Append("ID\n");
pimage.WriteContent(content);
content.Append("\nEI\nQ").Append_i(separator);
}
else
{
PdfName name;
PageResources prs = PageResources;
Image maskImage = image.ImageMask;
if (maskImage != null)
{
name = writer.AddDirectImageSimple(maskImage);
prs.AddXObject(name, writer.GetImageReference(name));
}
name = writer.AddDirectImageSimple(image);
name = prs.AddXObject(name, writer.GetImageReference(name));
content.Append(' ').Append(name.GetBytes()).Append(" Do Q").Append_i(separator);
}
}
if (image.HasBorders())
{
SaveState();
float w = image.Width;
float h = image.Height;
ConcatCTM(a/w, b/w, c/h, d/h, e, f);
Rectangle(image);
RestoreState();
}
if (image.Layer != null)
EndLayer();
Annotation annot = image.Annotation;
if (annot == null)
return;
double[] r = new double[unitRect.Length];
for (int k = 0; k < unitRect.Length; k += 2)
{
r[k] = a*unitRect[k] + c*unitRect[k + 1] + e;
r[k + 1] = b*unitRect[k] + d*unitRect[k + 1] + f;
}
double llx = r[0];
double lly = r[1];
double urx = llx;
double ury = lly;
for (int k = 2; k < r.Length; k += 2)
{
llx = Math.Min(llx, r[k]);
lly = Math.Min(lly, r[k + 1]);
urx = Math.Max(urx, r[k]);
ury = Math.Max(ury, r[k + 1]);
}
annot = new Annotation(annot);
annot.SetDimensions((float) llx, (float) lly, (float) urx, (float) ury);
PdfAnnotation an = PdfAnnotationsImp.ConvertAnnotation(writer, annot,
new Rectangle((float) llx, (float) lly, (float) urx, (float) ury));
if (an == null)
return;
AddAnnotation(an);
} catch (IOException ioe) {
String path = image != null && image.Url != null ? image.Url.AbsolutePath
: MessageLocalization.GetComposedMessage("unknown");
throw new DocumentException(MessageLocalization.GetComposedMessage("add.image.exception", path), ioe);
}
}
示例2: AddImage
/**
* Adds an <CODE>Image</CODE> to the page. The positioning of the <CODE>Image</CODE>
* is done with the transformation matrix. To position an <CODE>image</CODE> at (x,y)
* use AddImage(image, image_width, 0, 0, image_height, x, y). The image can be placed inline.
* @param image the <CODE>Image</CODE> object
* @param a an element of the transformation matrix
* @param b an element of the transformation matrix
* @param c an element of the transformation matrix
* @param d an element of the transformation matrix
* @param e an element of the transformation matrix
* @param f an element of the transformation matrix
* @param inlineImage <CODE>true</CODE> to place this image inline, <CODE>false</CODE> otherwise
* @throws DocumentException on error
*/
public virtual void AddImage(Image image, float a, float b, float c, float d, float e, float f, bool inlineImage) {
if (image.Layer != null)
BeginLayer(image.Layer);
if (inText && IsTagged()){
EndText();
}
if (writer != null && image.IsImgTemplate()) {
writer.AddDirectImageSimple(image);
PdfTemplate template = image.TemplateData;
float w = template.Width;
float h = template.Height;
AddTemplate(template, a / w, b / w, c / h, d / h, e, f);
}
else {
content.Append("q ");
content.Append(a).Append(' ');
content.Append(b).Append(' ');
content.Append(c).Append(' ');
content.Append(d).Append(' ');
content.Append(e).Append(' ');
content.Append(f).Append(" cm");
if (inlineImage) {
content.Append("\nBI\n");
PdfImage pimage = new PdfImage(image, "", null);
if (image is ImgJBIG2) {
byte[] globals = ((ImgJBIG2)image).GlobalBytes;
if (globals != null) {
PdfDictionary decodeparms = new PdfDictionary();
decodeparms.Put(PdfName.JBIG2GLOBALS, writer.GetReferenceJBIG2Globals(globals));
pimage.Put(PdfName.DECODEPARMS, decodeparms);
}
}
PdfWriter.CheckPdfIsoConformance(writer, PdfIsoKeys.PDFISOKEY_INLINE_IMAGE, pimage);
foreach (PdfName key in pimage.Keys) {
if (!abrev.ContainsKey(key))
continue;
PdfObject value = pimage.Get(key);
String s = abrev[key];
content.Append(s);
bool check = true;
if (key.Equals(PdfName.COLORSPACE) && value.IsArray()) {
PdfArray ar = (PdfArray)value;
if (ar.Size == 4
&& PdfName.INDEXED.Equals(ar.GetAsName(0))
&& ar[1].IsName()
&& ar[2].IsNumber()
&& ar[3].IsString()
) {
check = false;
}
}
if (check && key.Equals(PdfName.COLORSPACE) && !value.IsName()) {
PdfName cs = writer.GetColorspaceName();
PageResources prs = PageResources;
prs.AddColor(cs, writer.AddToBody(value).IndirectReference);
value = cs;
}
value.ToPdf(null, content);
content.Append('\n');
}
content.Append("ID\n");
pimage.WriteContent(content);
content.Append("\nEI\nQ").Append_i(separator);
}
else {
PdfName name;
PageResources prs = PageResources;
Image maskImage = image.ImageMask;
if (maskImage != null) {
name = writer.AddDirectImageSimple(maskImage);
prs.AddXObject(name, writer.GetImageReference(name));
}
name = writer.AddDirectImageSimple(image);
name = prs.AddXObject(name, writer.GetImageReference(name));
content.Append(' ').Append(name.GetBytes()).Append(" Do Q").Append_i(separator);
}
}
if (image.HasBorders()) {
SaveState();
float w = image.Width;
float h = image.Height;
ConcatCTM(a / w, b / w, c / h, d / h, e, f);
Rectangle(image);
RestoreState();
}
//.........这里部分代码省略.........
示例3: AddImage
/**
* Adds an <CODE>Image</CODE> to the page. The positioning of the <CODE>Image</CODE>
* is done with the transformation matrix. To position an <CODE>image</CODE> at (x,y)
* use AddImage(image, image_width, 0, 0, image_height, x, y). The image can be placed inline.
* @param image the <CODE>Image</CODE> object
* @param a an element of the transformation matrix
* @param b an element of the transformation matrix
* @param c an element of the transformation matrix
* @param d an element of the transformation matrix
* @param e an element of the transformation matrix
* @param f an element of the transformation matrix
* @param inlineImage <CODE>true</CODE> to place this image inline, <CODE>false</CODE> otherwise
* @throws DocumentException on error
*/
public virtual void AddImage(Image image, float a, float b, float c, float d, float e, float f, bool inlineImage)
{
if (image.Layer != null)
BeginLayer(image.Layer);
if (image.IsImgTemplate()) {
writer.AddDirectImageSimple(image);
PdfTemplate template = image.TemplateData;
float w = template.Width;
float h = template.Height;
AddTemplate(template, a / w, b / w, c / h, d / h, e, f);
}
else {
content.Append("q ");
content.Append(a).Append(' ');
content.Append(b).Append(' ');
content.Append(c).Append(' ');
content.Append(d).Append(' ');
content.Append(e).Append(' ');
content.Append(f).Append(" cm");
if (inlineImage) {
content.Append("\nBI\n");
PdfImage pimage = new PdfImage(image, "", null);
foreach (PdfName key in pimage.Keys) {
PdfObject value = pimage.Get(key);
String s = (String)abrev[key];
if (s == null)
continue;
content.Append(s);
bool check = true;
if (key.Equals(PdfName.COLORSPACE) && value.IsArray()) {
ArrayList ar = ((PdfArray)value).ArrayList;
if (ar.Count == 4
&& PdfName.INDEXED.Equals(ar[0])
&& ((PdfObject)ar[1]).IsName()
&& ((PdfObject)ar[2]).IsNumber()
&& ((PdfObject)ar[3]).IsString()
) {
check = false;
}
}
if (check && key.Equals(PdfName.COLORSPACE) && !value.IsName()) {
PdfName cs = writer.GetColorspaceName();
PageResources prs = PageResources;
prs.AddColor(cs, writer.AddToBody(value).IndirectReference);
value = cs;
}
value.ToPdf(null, content);
content.Append('\n');
}
content.Append("ID\n");
pimage.WriteContent(content);
content.Append("\nEI\nQ").Append_i(separator);
}
else {
PdfName name;
PageResources prs = PageResources;
Image maskImage = image.ImageMask;
if (maskImage != null) {
name = writer.AddDirectImageSimple(maskImage);
prs.AddXObject(name, writer.GetImageReference(name));
}
name = writer.AddDirectImageSimple(image);
name = prs.AddXObject(name, writer.GetImageReference(name));
content.Append(' ').Append(name.GetBytes()).Append(" Do Q").Append_i(separator);
}
}
if (image.HasBorders()) {
SaveState();
float w = image.Width;
float h = image.Height;
ConcatCTM(a / w, b / w, c / h, d / h, e, f);
Rectangle(image);
RestoreState();
}
if (image.Layer != null)
EndLayer();
Annotation annot = image.Annotation;
if (annot == null)
return;
float[] r = new float[unitRect.Length];
for (int k = 0; k < unitRect.Length; k += 2) {
r[k] = a * unitRect[k] + c * unitRect[k + 1] + e;
r[k + 1] = b * unitRect[k] + d * unitRect[k + 1] + f;
}
float llx = r[0];
//.........这里部分代码省略.........