Articles of 图像

当LAMP服务器上有数百万用户时,什么是最快和最有效的存储和提取图像的方式?

这是迄今为止我提出的最好的方法,我想知道是否有一个更好的方法(我确定有!)来存储和获取数以百万计的用户图像: 为了保持目录的大小,并避免对数据库进行任何额外的调用,我使用基于用户的唯一ID计算的嵌套目录如下: $firstDir = './images'; $secondDir = floor($userID / 100000); $thirdDir = floor(substr($id, -5, 5) / 100); $fourthDir = $userID; $imgLocation = "$firstDir/$secondDir/$thirdDir/$fourthDir/1.jpg"; 用户ID( $userID )的范围从1到数百万。 所以,如果我有用户ID 7654321 ,例如,该用户的第一张照片将被存储在: ./images/76/543/7654321/1.jpg 对于用户ID 654321 : ./images/6/543/654321/1.jpg 对于用户ID 54321 ,它将是: ./images/0/543/54321/1.jpg 对于用户ID 4321 ,它将是: ./images/0/43/4321/1.jpg 对于用户ID 321 ,它将是: ./images/0/3/321/1.jpg 对于用户ID 21 ,它将是: ./images/0/0/21/1.jpg 对于用户ID 1 ,它将是: ./images/0/0/1/1.jpg 这确保了用户高达100,000,000,我永远不会有一个目录超过1000个子目录,所以它似乎保持干净和高效。 […]

jpegtran优化而不改变文件名

我需要优化一些图片,但不能改变他们的名字。 jpegtran -copy none -optimize image.jpg > image.jpg 但是,这似乎创build一个0的文件大小。当我做到不同的文件名,大小仍然是完全一样的。

最适合约250,000个图像的网页文件夹结构

我将有大约20万张图片作为我网站的一部分。 每个图像将被存储3次:全尺寸,缩略图,更大的缩略图。 全尺寸图像大约在50Kb到500Kb之间。 正常的技术:在VPS上的Linux,Apache,MySQL,PHP。 什么是最佳的方式来存储这些通过浏览器快速检索和显示? 我应该将所有内容存储在一个文件夹中吗 我应该存储全尺寸的图像在一个文件夹,在另一个缩略图等? 我应该将图像存储在1000个文件夹中,并且保留图像所在的文件夹的索引? 感谢您的任何build议。 伟业。

只使用GDI()保留图像的红色通道

我最初有一个彩色图像,我通过只复制红色通道,即RGB的前8位(24位),使其灰度。 这是因为一些处理需要图像灰度。处理后,我必须在屏幕上使用GDI显示此图像。 所以我必须把灰色值复制到最终输出的红色chanel。 像setpixel(i,j,RGB(grayvalue,0,0))。 我如何实现这个使用GDI?

跨进程发送图像的最有效方式

目标 将由一个进程生成的图像以高速高效地传递到另一个进程。 这两个进程在同一台机器上和同一个桌面上运行。 操作系统可能是WinXP,Vista和Win7。 详细说明 第一个过程仅用于控制与产生图像的设备的通信。 这些图像大小约为500x300px,可能每秒更新数百次。 第二个过程需要这些图像来处理它们。 第一个过程使用第三方API将设备上的图像绘制到HDC。 这HDC必须由我提供。 注意:两个进程之间已经build立了连接。 他们通过匿名pipe道进行通信,并共享内存映射的文件视图。 思考 我怎样才能实现这个目标尽可能less的工作? 我的意思是既为电脑和我(当然)工作)。 我正在使用Delphi,所以也许有一些组件可以做到这一点? 我认为我总是可以绘制到任何图像组件的HDC,将内容保存到内存stream中,通过内存映射文件复制内容,在另一侧解压缩内容并将其绘制到目标HDC。 我也读了一个可以用来封送图片的IPicture接口。 我尽可能快地需要它,所以越less越好。 我不希望只通过复制一些图像来强调机器。 你有什么想法? 我感谢每一个想法!

如何使用硬件video缩放器?

现代显卡具有硬件video缩放器,例如作为AMD Avivo,NVIDIA PureVideo或Intel ClearVideo的一部分。 例如,AMD的Avivo白皮书说: “图像输出缩放器最多可支持6个垂直滤波器抽头和10个水平滤波器抽头,这些缩放器是高度精确的多相位缩放器,具有高度可编程性,适用于按任意比例放大,或缩小至4 :1“。 问题: 如何从Windows程序使用video缩放器硬件? 假设已经存在解码的video帧,例如在IDirect3DSurface9 ,目标是使用硬件缩放器在屏幕上显示该video帧。 我想使用Windows API(如Media Foundation或DirectShow),而不是使用特定于供应商的API(如果可能)。 我主要感兴趣的是1.5-3倍左右的相当大的因素。 第二个问题是,如何控制video缩放器硬件参数? (例如,上述的多相滤波器中的滤波器系数) 编辑:赏金开始。 请提供在video卡中使用video缩放器硬件的任何方式的示例(这可能是供应商特定的,或者使用任何版本的DirectX / DirectShow / Media Foundation API)。 编辑:更新:使用video缩放器硬件的程序的一些示例:WinDVD,PowerDVD,madVR。 我想知道如何完成他们的工作,即使用GPU的内置video硬件缩放器, 而不是使用D3D着色器和纹理采样器实现的缩放器。

docker图像和容器在Windows中使用时存储在哪里?

注意:对于Windows和Docker来说都是超新的 我一直在使用的教程说,如果我们使用Linux,它们位于/var/lib/docker/containers ,但我似乎无法在Windows机器上find它。 谢谢!

如何在Windows上使用Java在默认图像查看器中打开图像?

我有一个button来查看附加到日志条目的图像,当用户单击该button时,我希望它打开Windows机器上用户的默认图像查看器中的图像? 如何知道默认图像查看器中的哪个查看器? 现在我正在做这样的事情,但它不工作: String filename = "\""+(String)attachmentsComboBox.getSelectedItem()+"\""; Runtime.getRuntime().exec("rundll32.exe C:\\WINDOWS\\System32\\shimgvw.dll,ImageView_Fullscreen "+filename); 而通过不工作,我的意思是它什么都不做。 我试图只在命令行运行命令,什么也没有发生。 没有错误,没有。

在Windows文件夹中是否有任何C ++ lib从thumb.db中读取缩略图?

我想从Windows XP中的图像文件夹中读取所有的缩略图。 但是,如果我读取图像文件来获取缩略图,它似乎有点慢,所以我希望我可以先读取Windows图像缩略图caching:thumb.db。 在c ++或c中是否有任何lib从thumb.db中读取缩略图?

如何将BMP像素值读入数组?

我用C ++编写代码(在Windows上),我试图提取灰度bmp的像素值。 我不关心保留任何元数据,只想将像素值存储在char数组中。 我一直无法find一个手动的标准或“典型”的方式,所以我想知道是否有一个简单的库,人们用来加载位图到内存中。 提前致谢!