小编Tom*_*Tom的帖子

使用不安全代码的C#位图

我正在使用以下代码在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)

c# unsafe bitmap

22
推荐指数
1
解决办法
8344
查看次数

从PHP/Bash/C#中删除PDF中的图层/背景

我有一些PDF文件需要使用PHP脚本进行修改.我也能exec()所以我几乎可以使用在CentOS上运行的任何东西.

通过Adobe Acrobat Pro X打开PDF文件时,在"图层"面板中显示2个图层:

  1. 背景
  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 c# pdf gd imagemagick

5
推荐指数
1
解决办法
4541
查看次数

如何接受编程代码输入用于显示目的?

在PHP中接受用户输入的编程代码,将其存储在数据库中并使用HTML预标记显示回来的最安全的方法是什么?

我目前将输入转换为HTML实体,但我认为它不会那么容易......

有什么建议?

html php xss sql-injection html-entities

3
推荐指数
1
解决办法
205
查看次数

Bash for循环在300次循环后结束?

我有一个非常有趣的问题,在我的下面的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,等等.

bash shell

0
推荐指数
1
解决办法
265
查看次数

标签 统计

c# ×2

php ×2

bash ×1

bitmap ×1

gd ×1

html ×1

html-entities ×1

imagemagick ×1

pdf ×1

shell ×1

sql-injection ×1

unsafe ×1

xss ×1