自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zyl910的专栏

优化技巧、硬件体系、图像处理、图形学、游戏编程、国际化与文本信息处理。主力博客:http://www.cnblogs.com/zyl910/

  • 博客(85)
  • 资源 (6)
  • 收藏
  • 关注

原创 SIMD函数整理:00 索引贴(2012-07-31更新)

作者:zyl910  关于SIMD(MMX、SSE、AVX)编程的资料一直很零散,于是我试图进行收集整理,便于随时翻阅学习。而且很多代码是直接用汇编写的,易读性差、难以重用,于是我决定将其统一改写为Intrinsics函数版。一、Instructions函数对照表  在使用Instructions函数时,很多时候会发现MSDN说的不详细,这时只有去翻阅Intel、AMD文档了。但I

2012-04-26 22:01:43 2235

原创 [C#] 对24位图像进行水平翻转(FlipX)的跨平台SIMD硬件加速向量算法-第2部分:使用YShuffleX2Kernel优化程序

在本主题的 上一篇文章 里,给大家讲解了24位图像水平翻转(FlipX)算法。但该文章主要是为了介绍 YShuffleX3Kernel 的使用,该算法性能并不是最优的。于是本文将介绍如何使用 YShuffleX2Kernel 来优化程序。而且Imageshop在留言区给了一份C语言的、基于Sse系列指令集实现的代码,正好一起对比一下。

2025-03-16 18:18:20 695

原创 发布 VectorTraits v3.1(支持 .NET 9.0,支持 原生AOT)

VectorTraits已更新至 v3.1版。支持 .NET 9.0,支持 原生AOT。

2025-01-27 00:35:38 1691

原创 [C#] 复数乘法的跨平台SIMD硬件加速向量算法(不仅支持X86的Sse、Avx、Avx512,还支持Arm的AdvSimd)

将复数乘法改造为SIMD向量算法,是稍微有一些的难度的。首个难点是需要重新调整元素的位置,才能满足复数乘法公式。而“调整元素的位置”与内存中数据布局有关,不同办法的性能不同。还需考虑优化内存访问等细节。最近知乎有个帖子讨论了该话题,且 hez2010 给出了修正后的基于Avx指令集 HorizontalAdd(水平加法)的向量算法。于是我来说说基于 Shuffle(换位)的向量算法吧。且这些算法是跨平台的

2024-12-28 01:05:00 1330

原创 [C#] 24位图像水平翻转的跨平台SIMD硬件加速向量算法的关键——YShuffleX3Kernel源码解读(如Avx2解决shuffle的跨lane问题、Avx512优化等)

在上一篇文章里,给大家讲解了24位图像水平翻转(FlipX)算法,其中用到了一个关键方法——YShuffleX3Kernel。一些读者对它背后的原理感兴趣——为什么它在跨平台时运行也能获得SIMD硬件加速, 各种向量指令集的情况下具体怎样实现的?于是本文便详细解答一下。

2024-12-11 22:58:44 463

原创 [C#] 对24位图像进行水平翻转(FlipX)的跨平台SIMD硬件加速向量算法(使用YShuffleX3Kernel)

在上一篇文章里,给大家讲解了32位图像水平翻转(FlipX)算法,于是本文来探讨更加复杂的24位图像水平翻转算法。本文除了会给出标量算法外,还会给出向量算法。且这些算法是跨平台的,同一份源代码,能在 X86(Sse、Avx等指令集)及Arm(AdvSimd等指令集)等架构上运行,且均享有SIMD硬件加速。

2024-12-04 21:52:12 1321

原创 [C#] 对32位图像进行水平翻转(FlipX)的跨平台SIMD硬件加速向量算法(使用VectorTraits的YShuffleKernel方法来解决Shuffle的缺点)

在上一篇文章里,我们讲解了图像的垂直翻转(FlipY)算法,于是本文来探讨水平翻转(FlipX)。先讲解比较容易的32位图像水平翻转算法,便于后续文章来探讨复杂的24位图像水平翻转算法。本文除了会给出标量算法外,还会给出向量算法。且这些算法是跨平台的,同一份源代码,能在 X86(Sse、Avx等指令集)及Arm(AdvSimd等指令集)等架构上运行,且均享有SIMD硬件加速。

2024-12-01 22:24:41 663

原创 [C#] 对图像进行垂直翻转(FlipY)的跨平台SIMD硬件加速向量算法,兼谈并行处理收益极少的原因

将位图进行水平翻转或垂直翻转,这些是图像处理的常用算法。本文介绍最简单的垂直翻转,便于后续文章来探讨复杂的水平翻转算法。本文除了会给出标量算法外,还会给出向量算法。且这些算法是跨平台的,同一份源代码,能在 X86及Arm架构上运行,且均享有SIMD硬件加速。

2024-11-30 03:19:06 896

原创 [C#] Bgr24彩色位图转为灰度的Bgr24位图的跨平台SIMD硬件加速向量算法

在上一篇文章里,我们讲解了“Bgr24彩色位图转为Gray8灰度位图”算法。本文将探讨“Bgr24彩色位图转为灰度的Bgr24位图”。区别在于目标位图也是Bgr24格式的,只是将像素数据由彩色转为了灰度。这些算法也是跨平台的,同一份源代码,能在 X86及Arm架构上运行,且均享有SIMD硬件加速。

2024-11-21 00:42:22 868

原创 [C#] Bgr24彩色位图转为Gray8灰度位图的跨平台SIMD硬件加速向量算法(第2版: 增加512位向量算法、RGB2Y算法的测试对比)

将彩色位图转为灰度位图,是图像处理的常用算法。本文将介绍 Bgr24彩色位图转为Gray8灰度位图的算法,除了会给出标量算法外,还会给出向量算法。且这些算法是跨平台的,同一份源代码,能在 X86及Arm架构上运行,且均享有SIMD硬件加速。

2024-11-19 23:16:12 1256

原创 发布 VectorTraits v3.0(支持 X86架构的Avx512系列指令集,支持 Wasm架构及PackedSimd指令集等)

VectorTraits已更新至 v3.0版。支持Vector512类型及 X86架构的Avx512系列指令集; 支持 Wasm架构及PackedSimd指令集; 还提供了 多向量换位(YShuffleX2、YShuffleX3)、交织(Group2Zip, Group2Unzip) 等原创的向量方法。

2024-11-09 22:18:34 1059

翻译 [译] .NET 8 中的硬件内在函数(支持 Wasm 和 AVX-512)

它带来了沿着的大量新指令和硬件功能,包括支持16个额外的SIMD寄存器,专用掩码,以及一次操作512位数据。因此,可以利用此新功能的用户数量较少,但它可以为硬件带来的改进仍然很重要,并且值得支持数据繁重的工作负载。这允许暴露的API表面显著更小(减少超过3000个API),现有代码在很大程度上“只是工作”并利用较新的硬件支持而无需显式操作,并且希望支持AVX-512的用户不必学习新概念或以新方式编写代码。,简称Wasm,本质上是在浏览器中运行的代码,它允许比典型的解释型脚本支持更高的性能配置文件。

2024-04-13 22:25:28 226

原创 [C#] .NET8增加了Arm架构的多寄存器的查表函数(VectorTableLookup/VectorTableLookupExtension)

发现.NET8增加了Arm架构的多寄存器的查表函数(VectorTableLookup/VectorTableLookupExtension),这给编写SIMD向量化算法带来了方便。

2024-03-23 22:56:56 777

原创 发布 VectorTraits v2.0(支持 x86的Sse系列指令集等)

固定长度的数组”的原理比较简单,就是利用值类型的结构体的一些特点。且2.0版增加了浮点类型判断等多个函数,若仍然放在BitMath里,会使该类便的更大,不易维护。即原本1条指令就能寻址,但JIT只会编译为3条指令的,影响了性能。对于固定长度的向量类型(Vector128/Vector256),在v1.0版时只是提供了常用的向量方法。的地址计算,存在写法繁琐,很难利用“寄存器相对寻址”、“相对基址变址寻址”指令问题。当使用这2种相对寻址时,能在同一指令内就能完成“地址计算”与实际的“数据搬运”。

2024-03-17 17:47:15 757

原创 发布 VectorTraits v1.0,它是 C# 下增强SIMD向量运算的类库

本库为向量类型提供了许多重要的算术方法(如 Shift, Shuffle, NarrowSaturate)及常数, 使您能更方便的编写跨平台的SIMD运算代码。它充分利用了 X86、Arm架构的内在函数实现硬件加速,且能够享受内联编译优化。

2023-09-08 00:32:53 787

原创 [C] 跨平台使用TCHAR——让Linux等平台也支持tchar.h,解决跨平台时的格式控制字符问题,多国语言的同时显示(兼容vc/gcc/bcb,支持Windows/Linux/Mac)

作者:zyl910  将Windows程序移植到Linux等平台时,经常会遇到tchar.h问题与字符串的格式控制字符问题(char串、wchar_t串、TCHAR串混合输出)。本文探讨如何解决这些问题。一、背景1.1 历史  传统的C程序使用char字符串,采用ANSI+DBCS方案来支持当地语言,不能实现多国语言同时显示。  当年微软在设计Windows NT时考虑到国

2013-01-17 21:50:34 14405 2

原创 [C] 跨平台使用Intrinsic函数范例3——使用MMX、SSE2指令集 处理 32位整数数组求和

作者:zyl910。  本文面对对SSE等SIMD指令集有一定基础的读者,以32位整数数组求和为例演示了如何跨平台使用MMX、SSE2指令集。支持vc、gcc编译器,在Windows、Linux、Mac这三大平台上成功运行。 一、关键讲解  前文(http://www.cnblogs.com/zyl910/archive/2012/10/22/simdsumfloat.html)演

2012-10-26 21:23:44 10593

原创 [C] 跨平台使用Intrinsic函数范例2——使用SSE2、AVX指令集 处理 双精度浮点数组求和

作者:zyl910。  本文面对对SSE等SIMD指令集有一定基础的读者,以双精度浮点数组求和为例演示了如何跨平台使用SSE2、AVX指令集。支持vc、gcc编译器,在Windows、Linux、Mac这三大平台上成功运行。一、关键讲解  前文(http://www.cnblogs.com/zyl910/archive/2012/10/22/simdsumfloat.html)演示

2012-10-26 18:06:18 5902

原创 [C] 跨平台使用Intrinsic函数范例1——使用SSE、AVX指令集 处理 单精度浮点数组求和(支持vc、gcc,兼容Windows、Linux、Mac)

作者:zyl910。  本文面对对SSE等SIMD指令集有一定基础的读者,以单精度浮点数组求和为例演示了如何跨平台使用SSE、AVX指令集。因使用了stdint、zintrin、ccpuid这三个模块,可以完全避免手工编写汇编代码,具有很高可移植性。支持vc、gcc编译器,在Windows、Linux、Mac这三大平台上成功运行。一、问题背景  最初,我们只能使用汇编语言来编写SI

2012-10-22 22:28:17 7253

原创 [C] zintrin.h : 智能引入intrinsic函数。支持VC、GCC,兼容Windows、Linux、Mac OS X

作者:zyl910。  现在很多编译器支持intrinsic函数,这给编写SSE等SIMD代码带来了方便。但是各个编译器略有差异,于是我编写了zintrin.h,智能引入intrinsic函数。一、各种编译器的区别1.1 Visual C++(Windows)  最早支持intrinsic函数的VC编译器是VC 6.0。它在装上Visual Studio 6.0 Service

2012-09-23 23:19:35 7036

原创 ccpuid:CPUID信息模块。范例:显示所有的CPUID信息

作者:zyl910  关于获取各种CPUID信息,我之前积累了不少代码,现在决定将它们封装在一个模块中,方便代码复用。  其次,前面只是介绍了CPUID的一些常用功能,而Intel、AMD的手册中定义了大量的CPUID功能。所以我希望有一个程序能按照功能号顺序,依次显示所有的CPUID信息。这样就能很方便的与Intel、AMD的手册进行对照,有助于学习与理解。一、模块设计  最

2012-07-11 16:47:40 9841

原创 [VC] 检测AVX系列指令集的支持级别(AVX、AVX2、F16C、FMA、FMA4、XOP)

从2011年的Sandy Bridge微架构处理器开始,现在支持AVX系列指令集的处理器越来越多了。本文探讨如何用VC编写检测AVX系列指令集的程序,并利用了先前的CPUIDFIELD方案。一、AVX系列指令集简介  SSE5 指令:SSE5 是一个纸面上的指令集,并没有最终实现,AMD 在 2007 年 8 月公布 SSE5 指令集规范,在 2009 年 5 月 AMD 推出了 XOP,

2012-07-04 16:07:52 15839 1

原创 [VC] CPUIDFIELD:CPUID字段的统一编号、读取方案。范例:检查SSE4A、AES、PCLMULQDQ指令

除了基本的MMX和SSE系列指令集外,x86体系还有其他扩展指令集,例如SSE4A、AES、PCLMULQDQ等,它们也可以利用CPUID指令来检测。但是,这些指令集细碎杂多。如果像以前那样分别编写检测函数的话,那工作量太大,不值得。而且大量的函数名也会给使用带来麻烦。于是文篇探讨如何设计一套通用的检测方案。零、指令简介  SSE4A指令:是AMD提出的,最早出现在2007年的K10微

2012-06-29 14:48:06 3425

原创 如何在各个版本的VC及64位下使用CPUID指令

前面我们探讨了在16位的DOS实模式下使用CPUID指令(http://www.cnblogs.com/zyl910/archive/2012/05/14/dos16_getcpuid.html)。而现在64位Windows系统已经很流行了,在32/64位模式下如何使用CPUID呢?于是本文介绍了如何在各个版本的VC及64位下使用CPUID指令。一、推荐使用__cpuid、__cpuidex等

2012-05-21 18:05:24 6220

原创 使用GetLogicalProcessorInformation获取逻辑处理器的详细信息(NUMA节点数、物理CPU数、CPU核心数、逻辑CPU数、各级Cache)

现在多核处理器已经很普及了,市场主流是双核处理器,还有4核、8核等高端产品。而且Intel推广了超线程技术(Hyper-Threading Technology, HTT),可以将一个物理核心模拟为两个逻辑处理器。这一切使得“CPU数量”这一概念变得复杂起来,对于软件开发人员来说,希望能获得物理CPU数、CPU核心数、逻辑CPU数等详细信息。  在Windows平台,可以调用GetLogica

2012-05-08 18:13:45 11342 1

原创 SIMD函数整理:01 《PC平台新技术MMX(上册):开发编程指南》第8章 MMX编码技术

一、来源  来源:《PC平台新技术MMX(上册):开发编程指南》第8章 MMX编码技术  书籍信息——http://e.360buy.com/30027396.htmlPC平台新技术MMX(上册):开发编程指南作 者: 吴乐南 编 出 版 社: 东南大学出版社 ISBN:9787810502528出版时间:1997-10-01页 数:149字 数:23700

2012-04-26 22:22:22 2488

原创 SIMD(MMX/SSE/AVX)变量命名规范心得

当使用Intrinsics函数来操作SIMD指令集(MMX/SSE/AVX等)时,会面对不同长度的SIMD数据类型,其中又分为多种紧缩格式。为此,我设计了一套SIMD变量命名规范,可以有效的提高代码的可读性。一、SIMD数据类型简介  SIMD数据类型有——__m64:64位紧缩整数(MMX)。__m128:128位紧缩单精度(SSE)。__m128d:128位紧缩双精度(SS

2012-04-23 17:47:46 4432

原创 AVX指令集中的32种浮点比较关系详解(NaN、无序、有序等)

在传统印象中,数字的比较关系只有6种。但在AVX指令集中,Intel一下给出了32种浮点比较谓词,详见下图——(Intel手册:Table 3-9. Comparison Predicate for VCMPPD and VCMPPS Instructions)  为什么会有这么多种比较谓词呢?我为此困惑困惑了很久。  直到最近翻阅了不少资料后,才终于将它们弄懂了。 一、浮

2012-04-19 16:37:41 3519

原创 深入探讨用位掩码代替分支(9):测试成绩总结

一、测试结果汇总  将前面的测试结果进行汇总,按照三点取中方式筛选结果,整理为表格(单位是毫秒,数值越小越好)——测试f0_iff1_minf2_negf3_sarf4_mmxf5_sseVC6 on 32bit2016206371967237.525.7VC6 on 64bit20282075

2012-04-13 17:29:17 3250 7

原创 深入探讨用位掩码代替分支(8):SSE指令集速度测试

在上一篇测试了MMX指令集,这次我们来测试SSE指令集。说的更精确一点,是测试SSE2指令集。  本篇致力于解决以下问题——1.SSE/SSE2指令集是什么?2.如何阅读Intel/AMD的手册?3.如何运用SSE指令集?如何将MMX代码升级为SSE代码。4.如何在VC++6.0这样的高级语言编译器中使用SSE指令集?一、简介  1999 年 Intel 推出了第 1

2012-04-12 22:30:16 3308

原创 深入探讨用位掩码代替分支(7):MMX指令集速度测试

前面我们测试了高级语言做饱和处理的性能。其实,对于这样的大批量数据处理,使用SIMD(Single Instruction Multiple Data,单指令多数据流)技术能极大的提高性能。MMX指令集是目前x86平台上覆盖最广的SIMD指令集,于是本文对它进行探讨。  本文致力于解决以下问题——1.MMX指令集是什么?2.如何阅读Intel/AMD的手册?2.如何运用MMX指令集

2012-04-09 23:08:54 2590

原创 深入探讨用位掩码代替分支(6):VB6速度测试

前面我们测试了C系列语言,验证了位掩码算法的确实性能不错。那么对于Basic系列语言,该算法的效率怎样呢?于是本文对此进行探讨。  VB.Net与C#一样,也是由.Net虚拟机执行的,没有多大的测试价值。所以我决定测试VB6。一、移植要点  VB6的功能与C系列语言差很多。很多地方需要换另一种方法去实现,甚至不能实现。  要点有——1.VB6不支持控制台程序,只支持窗口程序。所

2012-03-30 16:53:32 4139

原创 深入探讨用位掩码代替分支(5):C#2010速度测试

前面我们测试了C语言这样纯编译型语言。那么对于像C#这样由虚拟机执行的语言,“位掩码代替分支”法是否也有效果呢?于是本文对此进行探讨。一、移植要点  C#的语法与C语言很相像,多数代码可以直接用,但要注意以下几点。1.1 unsafe——不安全上下文  C#虽然支持指针,但必须在unsafe——不安全上下文 中才能使用。  要使用unsafe,必须先配置项目属性,允许不安全代码

2012-03-29 17:15:48 2179

原创 深入探讨用位掩码代替分支(4):VC2010速度测试

前面我们用VC6测试了位掩码代替分支的速度。VC6是1998年发售的,离现在有14年了。在14年里,Intel与AMD的CPU都换了好几套微架构了,VC6编译器很可能无法充分发挥它们的性能。而且,从2003年AMD推出了64位处理器开始,现在64位系统越来越普及,我们希望测试64位下的性能。  于是选择最新的VC系列编译器——Visual C++ 2010,它是2010年发售的,支持x64平台

2012-03-28 16:41:25 1754

原创 深入探讨用位掩码代替分支(3):VC6速度测试

wuhanbingwhdx提到了数据相关也会影响流水线(http://blog.csdn.net/zyl910/article/details/1330614)。  他的说法是有一定道理的。但是,在很多时候我们并不仅仅处理一个数值。比如将循环展开,在内循环处理2个或更多个的数值。而现代编译器面对循环展开时,在编译优化操作中会调整指令顺序,错开有相关性指令。因现代处理器支持超标量,这样的指令顺序

2012-03-27 15:51:13 1635

原创 深入探讨用位掩码代替分支(2):汇编代码分析

查看编译器生成的汇编代码,有助于我们分析程序的性能。1 让VC6输出编译的汇编代码  用VC6打开前一篇文章(http://blog.csdn.net/zyl910/article/details/7345655)的工程“noifCheck.dsw”。  首先需要配置项目设置——1.点击菜单栏 “工程”->“Project Settings”打开“Project Settings”

2012-03-21 15:20:56 1585

原创 深入探讨用位掩码代替分支(1):利用带符号移位生成掩码

几年前我写了一篇“优化分支代码——避免跳转指令堵塞流水线”(http://blog.csdn.net/zyl910/article/details/1330614)。因当时是整理笔记,有些粗略。这几年又有了新的心得,故决定深入探讨,顺便回答网友评论。  housisong(http://blog.csdn.net/housisong)提到了用利用带符号移位生成掩码——(假设n是32bit有

2012-03-12 17:09:22 2519 2

原创 [VC6] 检查MMX和SSE系列指令集的支持级别(最高SSE4.2)

参考文献——《Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2 (2A, 2B & 2C): Instruction Set Reference, A-Z》. December 2011.http://www.intel.com/content/www/us/en/architecture-an

2012-03-01 22:45:06 2826

原创 Intrinsics头文件与SIMD指令集、Visual Studio版本对应表

File:Intrinsics头文件描述:指令集描述VS:Visual Studio版本号VisualStudio:Visual Studio版本名File描述VSVisualStudiointrin.hAll Architectures8.02005mmintrin.hMMX intrinsics6.06

2012-02-28 22:35:56 2660

原创 [x86]SIMD指令集发展历程表(MMX、SSE、AVX等)

自1996年的MMX指令集以来,Intel和AMD不断为x86体系添加新的SIMD指令集。时至2012年,Intel的Ivy Bridge即将发布,这16年来SIMD指令集有了哪些发展呢?于是我决定整理一份SIMD指令集的发展历程表。通过阅读Intel和AMD的手册,以及搜索网上资料,我初步完成了这项工作。表格如下——指令集条DateICPUIDateA

2012-02-26 19:40:23 3125

TWAIN Specification Version 2.3

最新的 TWAIN 2.3 规范。 TWAIN Version 2.3 Released November 21, 2013 TWAIN.H is unified, with one header file supporting Windows, Linux and Mac OS X, bringing full support for TWAIN 2.x to Mac OS X for the first time. Printer functionality is significantly expanded Clarification of driver startup versus driver default values, and the proper effect of the MSG_RESET and MSG_RESETALL operations. A new image meta-data value that a driver can report to an application A section detailing the best coding practices for application and driver writers. Additional tests for the TWAIN Self-Certification system, and a note that TWAIN Self-Certification applications can now be registered on the TWAIN Working Group website.

2015-09-22

[源代码]再探C#类与结构体究竟谁快

[源代码]再探C#类与结构体究竟谁快——考虑栈变量、栈分配、64位整数、密封类

2011-09-20

[测试程序exe]再探C#类与结构体究竟谁快

[测试程序exe]再探C#类与结构体究竟谁快——考虑栈变量、栈分配、64位整数、密封类

2011-09-20

[源代码]C#类与结构体究竟谁快

[源代码]C#类与结构体究竟谁快——各种函数调用模式速度评测 详见—— http://blog.csdn.net/zyl910/article/details/6788417 C#类与结构体究竟谁快——各种函数调用模式速度评测

2011-09-19

[测试程序exe]C#类与结构体究竟谁快

[测试程序exe]C#类与结构体究竟谁快——各种函数调用模式速度评测 详见—— http://blog.csdn.net/zyl910/article/details/6788417 C#类与结构体究竟谁快——各种函数调用模式速度评测

2011-09-19

zDrawHelp V1.0(画像素图的辅助工具)

zDrawHelp V1.0 作者:zyl910 邮箱:zyl910@sina.com Blog:http://blog.csdn.net/zyl910 简介 ~~~~   zDrawHelp是一个画像素图的辅助工具。   它可以使一副图片在所有窗口的前面并半透明,而且最奇妙的是——鼠标操作能穿透该图片,直接操作下面的绘图软件。   运行环境:.Net Framework 2.0。Windows 2000/2003/xp/vista/win7。 操作指南 ~~~~~~~~   使用方法—— 1.启动绘图软件(如Photoshop)。进行编辑,放大到合适尺寸,准备画像素图。 2.启动zDrawHelp。 3.在zDrawHelp上点击鼠标右键,弹出快捷菜单。点击“打开图片”加载图片。 4.默认的不透明度是100%。您可以在右键菜单中的“不透明度”子菜单中调整不透明度(一般60%比较合适)。 5.图片打开后,默认是自适应缩放模式的。您可以在右键菜单中的“缩放”子菜单中调整缩放倍数。 6.拖曳鼠标左键移动窗口,使其位于绘图软件上方。再拖曳鼠标右键移动窗口内的图片,使其与绘图软件中的欲编辑区域吻合。 7.摆好位置后,点击右键菜单中的“永在顶层”。这样zDrawHelp就永在顶层,并且鼠标操作能穿透zDrawHelp,直接操作下面的绘图软件。 8.现在就可以参考图片进行像素图编辑了。若编辑时需要隐藏zDrawHelp的半透明窗口,可以使用快捷键Ctrl+F11隐藏,再按Ctrl+F11可以恢复显示。 问:如何退出zDrawHelp的穿透模式? 答:在任务栏右下角的任务托盘区找到zDrawHelp的托盘图标,点击鼠标右键弹出快捷菜单,再点击“永在顶层”,退出永在顶层模式与穿透模式。   解释—— 穿透模式 = 永在顶层 + 半透明(不透明度小于100%) 若您将不透明度设为100%,也可退出穿透模式。 这是顺序无关的。您也可以先设为“永在顶层”再调整“不透明度”进入穿透模式。 操作参考 ~~~~~~~~   操作说明—— 拖曳鼠标左键:移动窗口。 拖曳鼠标右键:移动窗口内的图片。 右键菜单:许多高级功能。如:打开图片、缩放、高级、调整窗口大小、永在顶层、不透明度、显示、隐藏、退出。   全局热键—— Ctrl+F11:显示/隐藏切换。 更新历史 ~~~~~~~~ [2011-08-13] V1.0 V1.0发布

2011-08-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除