我正在使用以下代码在C#中制作图像蒙版:
for(int x = 0; x < width; x++)
{
for(int y = 0; y < height; y++)
{
bmp.SetPixel(x,y,Color.White);
}
}
for(int x = left; x < width; x++)
{
for(int y = top; y < height; y++)
{
bmp.SetPixel(x,y,Color.Transparent);
}
}
Run Code Online (Sandbox Code Playgroud)
但这太慢了......与此相比,不安全的是什么?它会分配得更快吗?
最后我用PNG格式做了一个bmp.Save().
更新:
按照MusiGenesis的建议阅读http://www.bobpowell.net/lockingbits.htm后,我使用以下代码(适用于需要它的任何人)使其工作:
Bitmap bmp = new Bitmap(1000,1000,PixelFormat.Format32bppArgb);
BitmapData bmd = bmp.LockBits(new Rectangle(0, 0, bmp.Width,bmp.Height),
System.Drawing.Imaging.ImageLockMode.ReadWrite,
bmp.PixelFormat);
int PixelSize=4;
unsafe
{
for(int y=0; y<bmd.Height; y++)
{
byte* row=(byte *)bmd.Scan0+(y*bmd.Stride);
for(int x=0; x<bmd.Width; x++)
{ …Run Code Online (Sandbox Code Playgroud) 我有一些PDF文件需要使用PHP脚本进行修改.我也能exec()所以我几乎可以使用在CentOS上运行的任何东西.
通过Adobe Acrobat Pro X打开PDF文件时,在"图层"面板中显示2个图层:
当我禁用这两个图层时,我最终得到了黑白文本和图像(文本不是矢量图,它是扫描文档).
我想使用PHP和/或C#或任何命令行工具禁用这些图层和PDF中的任何其他类似图层.
其他有用的信息:
当我在我的PDF上运行pdfimages(随XPDF提供)时,它会准确地提取我实际需要从每个页面中删除的内容......
附加信息更新:我在此处修改了PDFSharp示例:http://www.pdfsharp.net/wiki/ExportImages-sample.ashx :
修改:
第28行:ExportImage(xObject, ref imageCount);
至:
PdfObject obj = xObject.Elements.GetObject("/OC");
Console.WriteLine(obj);
我在控制台中为每个图像获得以下输出:
<< /Name Background /Type /OCG >>
<< /OCGs [ 2234 0 R ] /P /AllOff /Type /OCMD >>
<< /Name Text Color /Type /OCG >>
这实际上是层信息,以及/ OC键的PDFSharp文档:
在处理图像之前,将根据此条目确定其可见性.如果确定不可见,则跳过整个图像,就好像没有Do操作符来调用它一样.
那么现在,如何将/ OC值修改为使这些图层不可见的东西?
在PHP中接受用户输入的编程代码,将其存储在数据库中并使用HTML预标记显示回来的最安全的方法是什么?
我目前将输入转换为HTML实体,但我认为它不会那么容易......
有什么建议?
我有一个非常有趣的问题,在我的下面的bash脚本中,for循环以某种方式在300循环之后总是停止(我有时需要它执行超过600).
#!/bin/bash
for i in `seq $1 $2`;
do
composite $i".png" $i"_temp.png" $i"_out.png"
done
Run Code Online (Sandbox Code Playgroud)
我在使用超过300个循环的其他语言中运行相同的命令时没有遇到任何问题.我不知道bash会发生什么.
另外,我注意到在第300次循环之后,脚本不会退出,而是"暂停".
我目前正在使用解决方法来解决此问题,方法是将脚本从1运行到250,然后从251运行到500,等等.