61阅读

轻触开关实现自锁功能-新一代小米插线板正式发布 功能更加强大 触控开关

发布时间:2018-01-16 所属栏目:纳米触控黑板

一 : 新一代小米插线板正式发布 功能更加强大 触控开关

昨天晚上,小米插线板的研发方青米科技宣布将于明天上午9点推出新一代小米插线板,并表示这是"进化/归来"。这意味着,新一代小米插线板在功能上应该会更全面。

另外,考虑到小米智能家庭将在明天上午众筹一款新品,而且和电有关,所以这次众筹的主角很有可能就是青米科技这款全新的插线板。

如昨晚的预告,今天上午,小米生态链企业青米科技今天上午正式公布了新一代小米插线板,功能更加强大,号称“不变的颜值,更智能的插线板”。

此次公布的新款小米插线板是5孔位版本,不带USB接口(USB口版本预计很快就会发布)。外观方面和上一代产品类似,但原来的物理电源开关键变成了圆形(触控开关),插线板边缘也似乎更加圆润

功能方面,新款小米插线板支持过载保护,通过mcu判断功耗大小,当功耗超过阀值,立即断开继电器,起到过载保护的作用。排除故障后,可手动回复或通过APP恢复正常工作状态。

此外,新插线板还支持漏电监测、节能、触控开关、定时计时、电力计量、自动学习等功能

目前,新款小米插线板的售价、开售日期暂未公布。上一代的售价分别为39元、49元(USB版),大家猜猜新款会卖多少钱?

相关阅读:小米新品39元插线板和49元有什么区别? 小米39元插线板拆解图

触控开关:新版小米插线板发布!功能更强大了

触控开关:新版小米插线板发布!功能更强大了

二 : PhotoShop的自动色阶功能的实现

      示例工程:http://files.cnblogs.com/laviewpbt/AutoLevel.rar.

      关于自动色阶,用过PS的人应该都对他有所了解,在调整图像的视觉效果上这个调整滤镜的使用频率也是相当高的。[www.61k.com]关于其实现原理,网络上亦已经有不少人对其进行了探讨和研究,这里只是再简单的给有兴趣的人复习一下。 
      首先计算出一副图像的直方图,也就是每个色阶(0~255)所对应的像素点的个数,然后沿0阶->255阶方向找到最小色阶点Min(所谓最小色阶点即第一个在某一阶上有点数出现的阶数,如在0阶时为0点,1阶时为0点,2阶也为0点,3阶为10点,4阶为5点,...,那么最小点应为3阶), 同样最大值则是反方向从255阶开始第一个在某一阶上有点数出现的阶数Max.一般来讲,对以彩色图像最小色阶点=0,而最大色阶点为255。然后从最小色阶点开始选择整个图像总点数的5.5%的那一点做为新的最小点NewMin,再沿相反方向(即255阶->0阶方向)选择整个图像总点数的5.5%的那一点做为新的最大点NewMax,计两者之差为Differ,则每以原始像素点对应的新值可以按如下算法计算:
If Color <= NewMin Then
  Color = 0
ElseIf Color >= NewMax Then
  Color = 255
Else
  Color = (Color - NewMin) * 255 / Differ
End If 
      这里我们假设你已经加载了一副24位真彩色图像到一个叫做Pic的图像容器中,并且为了方便我们设置其AutoRedraw为True,现在我们要对这副图像进行自动色阶的调整,除此之外,我们还希望处理的速度越快越好,首先我们请VB自带的Point和Pset函数站到一边去,他们处于图像处理的最低层(注意,不是最底层哦),接着,我们还要放弃对SetPixel和GetPixel的钟爱,因为他们和Point之流是一丘之貉。下一步,将目光瞄准GetBitmapBits和SetBitmapBits,哇,好名字,确实,这两个函数功能强大,但是我们不需要他们,因为他们是设备相关的,我不希望在我机器上能正常运行的程序在别人电脑上出现莫名其妙的效果。OK,还是请设备无关的函数GetDIBits,SetDIBits出山吧。关于这两个函数的使用方法,我不想详谈,但是你们可以记住,我们调用他们只是想快速的获得图像的点阵数据而已。 

      为了大家理解方便,这里我们设置图像的数据为一二维的RGBQUAD结构体,该结构体由四个分量组成,分别表示了颜色空间的Red,Green,Blue,Alpha分量(有的地方最后一个变量名为Reserved,但这不妨碍我们)。其中的Alpha因为VB的StdPicture对象不支持,我们不予以关心。 

色阶 PhotoShop的自动色阶功能的实现     

      好了,下面给出获取PictureBox控件中图像数据的函数,以及怎么样把图像数据绘制到PictureBox中去。
模块中的代码: 

色阶 PhotoShop的自动色阶功能的实现色阶 PhotoShop的自动色阶功能的实现DIB版本自动色阶
色阶 PhotoShop的自动色阶功能的实现Option Explicit 
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现'***************************模仿PS的自动色阶功能********************************* 
色阶 PhotoShop的自动色阶功能的实现'**  作者          :      laviewpbt 
色阶 PhotoShop的自动色阶功能的实现'**  开发时间      :      2008.7.1 
色阶 PhotoShop的自动色阶功能的实现'**  最后修改时间  :      2008.8.28 
色阶 PhotoShop的自动色阶功能的实现'**  联系方式      :      QQ:33184777 
色阶 PhotoShop的自动色阶功能的实现'**  E-MAIL      :      laviewpbt@sina.com 
色阶 PhotoShop的自动色阶功能的实现'**  All Rights Resered 
色阶 PhotoShop的自动色阶功能的实现'*********************************************************************** 
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现Public Type BITMAPFILEHEADER 

扩展:photoshop自动色阶 / photoshop色阶 / photoshop色阶在哪


色阶 PhotoShop的自动色阶功能的实现    bfType      As Integer 
色阶 PhotoShop的自动色阶功能的实现    bfSize      As Long 
色阶 PhotoShop的自动色阶功能的实现    bfReserved1 As Integer 
色阶 PhotoShop的自动色阶功能的实现    bfReserved2 As Integer 
色阶 PhotoShop的自动色阶功能的实现    bfOffBits  As Long 
色阶 PhotoShop的自动色阶功能的实现End Type 
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现Public Type Bitmap 
色阶 PhotoShop的自动色阶功能的实现  bmType As Long 
色阶 PhotoShop的自动色阶功能的实现  bmWidth As Long 
色阶 PhotoShop的自动色阶功能的实现  bmHeight As Long 
色阶 PhotoShop的自动色阶功能的实现  bmWidthBytes As Long 
色阶 PhotoShop的自动色阶功能的实现  bmPlanes As Integer 
色阶 PhotoShop的自动色阶功能的实现  bmBitsPixel As Integer 
色阶 PhotoShop的自动色阶功能的实现  bmBits As Long 
色阶 PhotoShop的自动色阶功能的实现End Type 
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现Public Type BITMAPINFOHEADER      '40 bytes 
色阶 PhotoShop的自动色阶功能的实现  biSize As Long                  'BITMAPINFOHEADER结构的大小 
色阶 PhotoShop的自动色阶功能的实现  biWidth As Long 
色阶 PhotoShop的自动色阶功能的实现  biHeight As Long 
色阶 PhotoShop的自动色阶功能的实现  biPlanes As Integer              '设备的为平面数,现在都是1 
色阶 PhotoShop的自动色阶功能的实现  biBitCount As Integer            '图像的颜色位图 
色阶 PhotoShop的自动色阶功能的实现  biCompression As Long            '压缩方式 
色阶 PhotoShop的自动色阶功能的实现  biSizeImage As Long              '实际的位图数据所占字节 
色阶 PhotoShop的自动色阶功能的实现  biXPelsPerMeter As Long          '目标设备的水平分辨率 
色阶 PhotoShop的自动色阶功能的实现  biYPelsPerMeter As Long          '目标设备的垂直分辨率 

扩展:photoshop自动色阶 / photoshop色阶 / photoshop色阶在哪


色阶 PhotoShop的自动色阶功能的实现  biClrUsed As Long                '使用的颜色数 
色阶 PhotoShop的自动色阶功能的实现  biClrImportant As Long           '重要的颜色数。如果该项为0,表示所有颜色都是重要的 
色阶 PhotoShop的自动色阶功能的实现End Type 
色阶 PhotoShop的自动色阶功能的实现  
色阶 PhotoShop的自动色阶功能的实现Public Type RGBQUAD               '只有bibitcount为1,2,4时才有调色板 
色阶 PhotoShop的自动色阶功能的实现  Blue As Byte                    '蓝色分量 
色阶 PhotoShop的自动色阶功能的实现  Green As Byte                   '绿色分量 
色阶 PhotoShop的自动色阶功能的实现  Red As Byte                     '红色分量 
色阶 PhotoShop的自动色阶功能的实现  Reserved As Byte                '保留值 
色阶 PhotoShop的自动色阶功能的实现End Type 
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现Public Type BITMAPINFO 
色阶 PhotoShop的自动色阶功能的实现  bmiHeader As BITMAPINFOHEADER 
色阶 PhotoShop的自动色阶功能的实现  bmiColors As RGBQUAD 
色阶 PhotoShop的自动色阶功能的实现End Type 
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现Public Const BI_RGB = 0& 
色阶 PhotoShop的自动色阶功能的实现Public Const DIB_RGB_COLORS = 0& 
色阶 PhotoShop的自动色阶功能的实现Public Const IMAGE_BITMAP = 0& 
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现色阶 PhotoShop的自动色阶功能的实现Public Declare Function GetDIBits()Function GetDIBits Lib "gdi32" (ByVal aHDC As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long 
色阶 PhotoShop的自动色阶功能的实现色阶 PhotoShop的自动色阶功能的实现Public Declare Function GetGDIObject()Function GetGDIObject Lib "gdi32.dll" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, ByRef lpObject As Any) As Long 
色阶 PhotoShop的自动色阶功能的实现

扩展:photoshop自动色阶 / photoshop色阶 / photoshop色阶在哪

色阶 PhotoShop的自动色阶功能的实现Public Declare Function SetDIBits()Function SetDIBits Lib "gdi32" (ByVal Hdc As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long 
色阶 PhotoShop的自动色阶功能的实现色阶 PhotoShop的自动色阶功能的实现Public Declare Function GetTickCount()Function GetTickCount Lib "kernel32" () As Long 
色阶 PhotoShop的自动色阶功能的实现色阶 PhotoShop的自动色阶功能的实现Public Declare Sub CopyMemory()Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (lpDst As Any, lpSrc As Any, ByVal ByteLength As Long) 
色阶 PhotoShop的自动色阶功能的实现色阶 PhotoShop的自动色阶功能的实现Public Declare Function VarPtrArray()Function VarPtrArray Lib "msvbvm60.dll" Alias "VarPtr" (ByRef Ptr() As Any) As Long 
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现'得到图像数据 
色阶 PhotoShop的自动色阶功能的实现色阶 PhotoShop的自动色阶功能的实现Public Function GetPicData()Function GetPicData(Pic As PictureBox, PicData() As RGBQUAD) As Boolean       '读取位图数据 
色阶 PhotoShop的自动色阶功能的实现    Dim Bmp As Bitmap, BmpInfo As BITMAPINFO 
色阶 PhotoShop的自动色阶功能的实现   GetGDIObject Pic.Picture.Handle, Len(Bmp), Bmp '取得对指定对象进行说明的一个结构, 
色阶 PhotoShop的自动色阶功能的实现                                                         'hobject为位图,刷子等的句柄, 
色阶 PhotoShop的自动色阶功能的实现                                                         'count欲取回的字节数。通常是由lpObject定义的那个结构的长度 
色阶 PhotoShop的自动色阶功能的实现    
色阶 PhotoShop的自动色阶功能的实现    With BmpInfo.bmiHeader 
色阶 PhotoShop的自动色阶功能的实现        .biSize = Len(BmpInfo.bmiHeader) 
色阶 PhotoShop的自动色阶功能的实现        .biWidth = Bmp.bmWidth 
色阶 PhotoShop的自动色阶功能的实现        .biHeight = -Bmp.bmHeight                'BMP位图默认的扫描方式是从下到上, 

扩展:photoshop自动色阶 / photoshop色阶 / photoshop色阶在哪


色阶 PhotoShop的自动色阶功能的实现                                                        '这与GDI的坐标系统相反,为方便,这里 
色阶 PhotoShop的自动色阶功能的实现                                                        '改为-值,则取得数据就是以左上角为起点 
色阶 PhotoShop的自动色阶功能的实现        .biPlanes = 1 
色阶 PhotoShop的自动色阶功能的实现        .biBitCount = 32                         '32位位图,默认情况下Windows不会处理最高8位 
色阶 PhotoShop的自动色阶功能的实现                                                        '可以将它作为自己的Alpha通道,取为32位位图, 
色阶 PhotoShop的自动色阶功能的实现                                                        '虽然多占用了点内存,但是避免了扫描行宽度问题,代码易于理解 
色阶 PhotoShop的自动色阶功能的实现        .biCompression = BI_RGB                        '无压缩 
色阶 PhotoShop的自动色阶功能的实现        .biSizeImage = Bmp.bmWidth * Bmp.bmHeight * 4 
色阶 PhotoShop的自动色阶功能的实现    End With 
色阶 PhotoShop的自动色阶功能的实现    ReDim PicData(0 To Bmp.bmWidth - 1, 0 To Bmp.bmHeight - 1) As RGBQUAD 
色阶 PhotoShop的自动色阶功能的实现    GetDIBits Pic.Hdc, Pic.Image, 0, Bmp.bmHeight, PicData(0, 0), BmpInfo, DIB_RGB_COLORS 
色阶 PhotoShop的自动色阶功能的实现End Function 
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现'根据数组显示图像 
色阶 PhotoShop的自动色阶功能的实现色阶 PhotoShop的自动色阶功能的实现Public Sub SetPicData()Sub SetPicData(Pic As PictureBox, PicData() As RGBQUAD)          '显示位图 
色阶 PhotoShop的自动色阶功能的实现    Dim Bmp As Bitmap, BmpInfo As BITMAPINFO 

扩展:photoshop自动色阶 / photoshop色阶 / photoshop色阶在哪


色阶 PhotoShop的自动色阶功能的实现    GetGDIObject Pic.Picture.Handle, Len(Bmp), Bmp          '取得对指定对象进行说明的一个结构,hobject为位图,刷子等的句柄,count欲取回的字节数。通常是由lpObject定义的那个结构的长度 
色阶 PhotoShop的自动色阶功能的实现    With BmpInfo.bmiHeader 
色阶 PhotoShop的自动色阶功能的实现        .biSize = Len(BmpInfo.bmiHeader) 
色阶 PhotoShop的自动色阶功能的实现        .biWidth = Bmp.bmWidth 
色阶 PhotoShop的自动色阶功能的实现        .biHeight = -Bmp.bmHeight                'BMP位图默认的扫描方式是从下到上, 
色阶 PhotoShop的自动色阶功能的实现                                                        '这与GDI的坐标系统相反,为方便,这里 
色阶 PhotoShop的自动色阶功能的实现                                                        '改为-值,则取得数据就是以左上角为起点 
色阶 PhotoShop的自动色阶功能的实现        .biPlanes = 1 
色阶 PhotoShop的自动色阶功能的实现       .biBitCount = 32                          '32位位图,默认情况下Windows不会处理最高8位 
色阶 PhotoShop的自动色阶功能的实现                                                        '可以将它作为自己的Alpha通道,取为32位位图, 
色阶 PhotoShop的自动色阶功能的实现                                                        '虽然多占用了点内存,但是避免了扫描行宽度问题,代码易于理解 
色阶 PhotoShop的自动色阶功能的实现        .biCompression = BI_RGB                   '无压缩 
色阶 PhotoShop的自动色阶功能的实现        .biSizeImage = Bmp.bmWidth * Bmp.bmHeight * 4 
色阶 PhotoShop的自动色阶功能的实现    End With 
色阶 PhotoShop的自动色阶功能的实现    SetDIBits Pic.Hdc, Pic.Image, 0, Bmp.bmHeight, PicData(0, 0), BmpInfo, DIB_RGB_COLORS 
色阶 PhotoShop的自动色阶功能的实现    Pic.Refresh 

扩展:photoshop自动色阶 / photoshop色阶 / photoshop色阶在哪


色阶 PhotoShop的自动色阶功能的实现End Sub 
色阶 PhotoShop的自动色阶功能的实现

    以上的SetPicData和GetPicData分别为图像数据显示和读取函数,这里的.biBitCount = 32选择为32位虽然加大了内存的占用量,但是确在一定程度上方便了编程,因为Windows下的位图对象是要求扫描行对齐的,也就是说一行像素的占用字节数必须是4的倍数,之所以这样,我想是因为32位的Windows系统处理4个字节的速度最快吧。
窗体中有三个按钮一个图片框,图片框中请在设计的时候加载一副图像及设置相关参数。 

      窗体代码

色阶 PhotoShop的自动色阶功能的实现色阶 PhotoShop的自动色阶功能的实现DIB版本自动色阶
色阶 PhotoShop的自动色阶功能的实现Option Explicit 
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现Private m_Width        As Long            '打开的图像的宽度 
色阶 PhotoShop的自动色阶功能的实现Private m_Height        As Long            '打开的图像的高度 
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现色阶 PhotoShop的自动色阶功能的实现Private Sub Form_Load()Sub Form_Load() 
色阶 PhotoShop的自动色阶功能的实现    m_Width = Pic.ScaleWidth 
色阶 PhotoShop的自动色阶功能的实现    m_Height = Pic.ScaleHeight 
色阶 PhotoShop的自动色阶功能的实现End Sub 
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现色阶 PhotoShop的自动色阶功能的实现Private Sub CmdOpen_Click()Sub CmdOpen_Click() 
色阶 PhotoShop的自动色阶功能的实现    CommonDialog.FileName = "" 
色阶 PhotoShop的自动色阶功能的实现    CommonDialog.Filter = "All Suppported Images |*.bmp;*.jpg;*.gif;|BMP Images|*.bmp|JPG Images|*.jpg|Gif Images|*.gif" 
色阶 PhotoShop的自动色阶功能的实现    CommonDialog.ShowOpen 
色阶 PhotoShop的自动色阶功能的实现    If CommonDialog.FileName <> "" Then 
色阶 PhotoShop的自动色阶功能的实现        Pic.Picture = LoadPicture(CommonDialog.FileName) 
色阶 PhotoShop的自动色阶功能的实现        m_Width = Pic.ScaleWidth 
色阶 PhotoShop的自动色阶功能的实现        m_Height = Pic.ScaleHeight 

扩展:photoshop自动色阶 / photoshop色阶 / photoshop色阶在哪


色阶 PhotoShop的自动色阶功能的实现    End If 
色阶 PhotoShop的自动色阶功能的实现End Sub 
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现色阶 PhotoShop的自动色阶功能的实现Private Sub CmdDib_Click()Sub CmdDib_Click() 
色阶 PhotoShop的自动色阶功能的实现    Dim T              As Long 
色阶 PhotoShop的自动色阶功能的实现    
色阶 PhotoShop的自动色阶功能的实现    Dim PicData()          As RGBQUAD 
色阶 PhotoShop的自动色阶功能的实现    Dim i                  As Long, j                      As Long 
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现    Dim HistRed(255)        As Long, HistGreen(255)        As Long 
色阶 PhotoShop的自动色阶功能的实现    Dim HistBlue(255)      As Long 
色阶 PhotoShop的自动色阶功能的实现    Dim DiffRed            As Long, DiffGreen              As Long 
色阶 PhotoShop的自动色阶功能的实现    Dim DiffBlue            As Long, Diff                  As Long 
色阶 PhotoShop的自动色阶功能的实现    Dim SpeedRed(255)      As Byte, SpeedGreen(255)        As Byte 
色阶 PhotoShop的自动色阶功能的实现    Dim SpeedBlue(255)      As Byte, Speed(255)            As Byte 
色阶 PhotoShop的自动色阶功能的实现    Dim Sum                As Long, Integral              As Long 
色阶 PhotoShop的自动色阶功能的实现    Dim Min                As Long, Max                    As Long 
色阶 PhotoShop的自动色阶功能的实现    Dim NewMin              As Long, NewMax                As Long 

扩展:photoshop自动色阶 / photoshop色阶 / photoshop色阶在哪


色阶 PhotoShop的自动色阶功能的实现    T = GetTickCount 
色阶 PhotoShop的自动色阶功能的实现    GetPicData Pic, PicData 
色阶 PhotoShop的自动色阶功能的实现    
色阶 PhotoShop的自动色阶功能的实现    
色阶 PhotoShop的自动色阶功能的实现    For i = 0 To m_Width - 1 
色阶 PhotoShop的自动色阶功能的实现        For j = 0 To m_Height - 1 
色阶 PhotoShop的自动色阶功能的实现            HistRed(PicData(i, j).Red) = HistRed(PicData(i, j).Red) + 1 
色阶 PhotoShop的自动色阶功能的实现            HistGreen(PicData(i, j).Green) = HistGreen(PicData(i, j).Green) + 1 
色阶 PhotoShop的自动色阶功能的实现            HistBlue(PicData(i, j).Blue) = HistBlue(PicData(i, j).Blue) + 1 
色阶 PhotoShop的自动色阶功能的实现        Next 
色阶 PhotoShop的自动色阶功能的实现    Next 
色阶 PhotoShop的自动色阶功能的实现  
色阶 PhotoShop的自动色阶功能的实现    For i = 0 To 255 
色阶 PhotoShop的自动色阶功能的实现        If HistRed(i) <> 0 Then 
色阶 PhotoShop的自动色阶功能的实现            Min = i 
色阶 PhotoShop的自动色阶功能的实现            Exit For 
色阶 PhotoShop的自动色阶功能的实现        End If 
色阶 PhotoShop的自动色阶功能的实现    Next 
色阶 PhotoShop的自动色阶功能的实现    For i = 255 To 0 Step -1 
色阶 PhotoShop的自动色阶功能的实现        If HistRed(i) <> 0 Then 
色阶 PhotoShop的自动色阶功能的实现            Max = i 
色阶 PhotoShop的自动色阶功能的实现            Exit For 
色阶 PhotoShop的自动色阶功能的实现        End If 
色阶 PhotoShop的自动色阶功能的实现    Next 
色阶 PhotoShop的自动色阶功能的实现    
色阶 PhotoShop的自动色阶功能的实现    Sum = 0 

扩展:photoshop自动色阶 / photoshop色阶 / photoshop色阶在哪


色阶 PhotoShop的自动色阶功能的实现    For i = Min To Max 
色阶 PhotoShop的自动色阶功能的实现        Sum = Sum + HistRed(i) 
色阶 PhotoShop的自动色阶功能的实现    Next 
色阶 PhotoShop的自动色阶功能的实现    
色阶 PhotoShop的自动色阶功能的实现    Integral = 0 
色阶 PhotoShop的自动色阶功能的实现    For i = Min To Max 
色阶 PhotoShop的自动色阶功能的实现        Integral = Integral + HistRed(i) 
色阶 PhotoShop的自动色阶功能的实现        If Integral >= Sum * 0.005 Then 
色阶 PhotoShop的自动色阶功能的实现            NewMin = i 
色阶 PhotoShop的自动色阶功能的实现            Exit For 
色阶 PhotoShop的自动色阶功能的实现        End If 
色阶 PhotoShop的自动色阶功能的实现    Next 
色阶 PhotoShop的自动色阶功能的实现    For i = NewMin + 1 To Max 
色阶 PhotoShop的自动色阶功能的实现        Integral = Integral + HistRed(i) 
色阶 PhotoShop的自动色阶功能的实现        If Integral > Sum * 0.995 Then 
色阶 PhotoShop的自动色阶功能的实现            NewMax = i 
色阶 PhotoShop的自动色阶功能的实现            Exit For 
色阶 PhotoShop的自动色阶功能的实现        End If 
色阶 PhotoShop的自动色阶功能的实现    Next 
色阶 PhotoShop的自动色阶功能的实现    
色阶 PhotoShop的自动色阶功能的实现    For i = 0 To 255 
色阶 PhotoShop的自动色阶功能的实现        If i <= NewMin Then 
色阶 PhotoShop的自动色阶功能的实现            SpeedRed(i) = 0 
色阶 PhotoShop的自动色阶功能的实现        ElseIf i >= NewMax Then 
色阶 PhotoShop的自动色阶功能的实现            SpeedRed(i) = 255 
色阶 PhotoShop的自动色阶功能的实现        Else 

扩展:photoshop自动色阶 / photoshop色阶 / photoshop色阶在哪


色阶 PhotoShop的自动色阶功能的实现            SpeedRed(i) = (i - NewMin) / (NewMax - NewMin) * 255 
色阶 PhotoShop的自动色阶功能的实现        End If 
色阶 PhotoShop的自动色阶功能的实现    Next 
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现色阶 PhotoShop的自动色阶功能的实现/**/'''''''''''''''''''''''''''' 
色阶 PhotoShop的自动色阶功能的实现  For i = 0 To 255 
色阶 PhotoShop的自动色阶功能的实现        If HistGreen(i) <> 0 Then 
色阶 PhotoShop的自动色阶功能的实现            Min = i 
色阶 PhotoShop的自动色阶功能的实现            Exit For 
色阶 PhotoShop的自动色阶功能的实现        End If 
色阶 PhotoShop的自动色阶功能的实现    Next 
色阶 PhotoShop的自动色阶功能的实现    For i = 255 To 0 Step -1 
色阶 PhotoShop的自动色阶功能的实现        If HistGreen(i) <> 0 Then 
色阶 PhotoShop的自动色阶功能的实现            Max = i 
色阶 PhotoShop的自动色阶功能的实现            Exit For 
色阶 PhotoShop的自动色阶功能的实现        End If 
色阶 PhotoShop的自动色阶功能的实现    Next 
色阶 PhotoShop的自动色阶功能的实现    
色阶 PhotoShop的自动色阶功能的实现    Sum = 0 
色阶 PhotoShop的自动色阶功能的实现    For i = Min To Max 
色阶 PhotoShop的自动色阶功能的实现        Sum = Sum + HistGreen(i) 
色阶 PhotoShop的自动色阶功能的实现    Next 
色阶 PhotoShop的自动色阶功能的实现    
色阶 PhotoShop的自动色阶功能的实现    Integral = 0 
色阶 PhotoShop的自动色阶功能的实现    For i = Min To Max 
色阶 PhotoShop的自动色阶功能的实现        Integral = Integral + HistGreen(i) 

扩展:photoshop自动色阶 / photoshop色阶 / photoshop色阶在哪


色阶 PhotoShop的自动色阶功能的实现        If Integral >= Sum * 0.005 Then 
色阶 PhotoShop的自动色阶功能的实现            NewMin = i 
色阶 PhotoShop的自动色阶功能的实现            Exit For 
色阶 PhotoShop的自动色阶功能的实现        End If 
色阶 PhotoShop的自动色阶功能的实现    Next 
色阶 PhotoShop的自动色阶功能的实现    
色阶 PhotoShop的自动色阶功能的实现    For i = NewMin + 1 To Max 
色阶 PhotoShop的自动色阶功能的实现        Integral = Integral + HistGreen(i) 
色阶 PhotoShop的自动色阶功能的实现        If Integral > Sum * 0.995 Then 
色阶 PhotoShop的自动色阶功能的实现            NewMax = i 
色阶 PhotoShop的自动色阶功能的实现            Exit For 
色阶 PhotoShop的自动色阶功能的实现        End If 
色阶 PhotoShop的自动色阶功能的实现    Next 
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现    For i = 0 To 255 
色阶 PhotoShop的自动色阶功能的实现        If i <= NewMin Then 
色阶 PhotoShop的自动色阶功能的实现            SpeedGreen(i) = 0 
色阶 PhotoShop的自动色阶功能的实现        ElseIf i > NewMax Then 
色阶 PhotoShop的自动色阶功能的实现            SpeedGreen(i) = 255 
色阶 PhotoShop的自动色阶功能的实现        Else 
色阶 PhotoShop的自动色阶功能的实现            SpeedGreen(i) = (i - NewMin) / (NewMax - NewMin) * 255 
色阶 PhotoShop的自动色阶功能的实现        End If 
色阶 PhotoShop的自动色阶功能的实现    Next 
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现色阶 PhotoShop的自动色阶功能的实现/**/''''''''''''''''''''''''' 

扩展:photoshop自动色阶 / photoshop色阶 / photoshop色阶在哪


色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现    For i = 0 To 255 
色阶 PhotoShop的自动色阶功能的实现        If HistBlue(i) <> 0 Then 
色阶 PhotoShop的自动色阶功能的实现            Min = i 
色阶 PhotoShop的自动色阶功能的实现            Exit For 
色阶 PhotoShop的自动色阶功能的实现        End If 
色阶 PhotoShop的自动色阶功能的实现    Next 
色阶 PhotoShop的自动色阶功能的实现    For i = 255 To 0 Step -1 
色阶 PhotoShop的自动色阶功能的实现        If HistBlue(i) <> 0 Then 
色阶 PhotoShop的自动色阶功能的实现            Max = i 
色阶 PhotoShop的自动色阶功能的实现            Exit For 
色阶 PhotoShop的自动色阶功能的实现        End If 
色阶 PhotoShop的自动色阶功能的实现    Next 
色阶 PhotoShop的自动色阶功能的实现    
色阶 PhotoShop的自动色阶功能的实现    Sum = 0 
色阶 PhotoShop的自动色阶功能的实现    For i = Min To Max 
色阶 PhotoShop的自动色阶功能的实现        Sum = Sum + HistBlue(i) 
色阶 PhotoShop的自动色阶功能的实现    Next 
色阶 PhotoShop的自动色阶功能的实现    
色阶 PhotoShop的自动色阶功能的实现    Integral = 0 
色阶 PhotoShop的自动色阶功能的实现    For i = Min To Max 
色阶 PhotoShop的自动色阶功能的实现        Integral = Integral + HistBlue(i) 
色阶 PhotoShop的自动色阶功能的实现        If Integral >= Sum * 0.005 Then 
色阶 PhotoShop的自动色阶功能的实现            NewMin = i 
色阶 PhotoShop的自动色阶功能的实现            Exit For 
色阶 PhotoShop的自动色阶功能的实现        End If 
色阶 PhotoShop的自动色阶功能的实现    Next 

扩展:photoshop自动色阶 / photoshop色阶 / photoshop色阶在哪


色阶 PhotoShop的自动色阶功能的实现    
色阶 PhotoShop的自动色阶功能的实现    For i = NewMin + 1 To Max 
色阶 PhotoShop的自动色阶功能的实现        Integral = Integral + HistBlue(i) 
色阶 PhotoShop的自动色阶功能的实现        If Integral > Sum * 0.995 Then 
色阶 PhotoShop的自动色阶功能的实现            NewMax = i 
色阶 PhotoShop的自动色阶功能的实现            Exit For 
色阶 PhotoShop的自动色阶功能的实现        End If 
色阶 PhotoShop的自动色阶功能的实现    Next 
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现    For i = 0 To 255 
色阶 PhotoShop的自动色阶功能的实现        If i <= NewMin Then 
色阶 PhotoShop的自动色阶功能的实现            SpeedBlue(i) = 0 
色阶 PhotoShop的自动色阶功能的实现        ElseIf i > NewMax Then 
色阶 PhotoShop的自动色阶功能的实现            SpeedBlue(i) = 255 
色阶 PhotoShop的自动色阶功能的实现        Else 
色阶 PhotoShop的自动色阶功能的实现            SpeedBlue(i) = (i - NewMin) / (NewMax - NewMin) * 255 
色阶 PhotoShop的自动色阶功能的实现        End If 
色阶 PhotoShop的自动色阶功能的实现    Next 
色阶 PhotoShop的自动色阶功能的实现    For i = 0 To m_Width - 1 
色阶 PhotoShop的自动色阶功能的实现        For j = 0 To m_Height - 1 
色阶 PhotoShop的自动色阶功能的实现            PicData(i, j).Red = SpeedRed(PicData(i, j).Red) 
色阶 PhotoShop的自动色阶功能的实现            PicData(i, j).Green = SpeedGreen(PicData(i, j).Green) 
色阶 PhotoShop的自动色阶功能的实现            PicData(i, j).Blue = SpeedBlue(PicData(i, j).Blue) 
色阶 PhotoShop的自动色阶功能的实现        Next 
色阶 PhotoShop的自动色阶功能的实现    Next 

扩展:photoshop自动色阶 / photoshop色阶 / photoshop色阶在哪


色阶 PhotoShop的自动色阶功能的实现    SetPicData Pic, PicData 
色阶 PhotoShop的自动色阶功能的实现    Me.Caption = "DIB方法用时" & GetTickCount - T & "毫秒" 
色阶 PhotoShop的自动色阶功能的实现End Sub 
色阶 PhotoShop的自动色阶功能的实现

     好了,任务完成了,编译测试一下,勾选上所有的高级优化选项,测试图片大小选为1024*768,结果显示需要300ms,啊,如此慢,PS中一点就出来了效果呢,仔细分析下代码结构,似乎能够优化的地方已经基本优化了,那问题主要是那里呢。 
     其实,在这里耗时的几个主要过程有,读取图像数据、计算直方图、计算新的图像数据、显示图像数据,其中又以中间两个过程为主。我们采用了二维结构体数组,众所周知,访问数组需要计算数组元素在内存中位置,而维数越高,计算地址的公式就越复杂,因此,如果能采用一维数组的方式理论上是要比二维的速度有所改进的,这部分测试可以用读者自己完成。
    这里要说的是另外一种提速的方法,模拟指针。其实这个词有很多人应该见过很多次了。虽然VB不直接支持指针的操作,但是借助于安全数据的相关特性,我们可以实现类似于C的指针(包括功能和代码的编辑方式).那么这里我们用模拟指针的好处很明显。第一:我们不需要调用GetDIBits这个函数,这意味着两种节省,其一是空间上的,GetDIBits函数需要你为他事先分配好一定的内存空间来保存图像数据。但是实际上,图像已经被我们加载入picturebox中,那么在内存中他肯定已经占用了空间,我们可以利用GetGDIObject这个函数配以适当的参数得到这个内存空间的首地址。其二是时间上的,分配空间和填充数据都是耗时的,虽然这个时间很少。第二,可以减少寻址的时间消耗, 用模拟指针的过程也需要寻址。但是适当的利用中间变量保存相关地址,可以节省大量的计算时间,比如你用二维结构体保存图象数据,要得到图象在(i,j)点的红色和兰色和绿色数据,则要调用Data(i,j).Red和Data(i,j).Blue、Data(i,j).Green,这里三次调用则三次寻址,每次寻址的过程类似于下面的公式 j*width+i+Offset,一次乘法,二次加法,如果我们自己寻址,则用临时变量保存j*width+i值,则会减少计算量。对于大循环则更是明显。

    好了说了这么多,下面给出代码。

色阶 PhotoShop的自动色阶功能的实现色阶 PhotoShop的自动色阶功能的实现模拟指针版自动色阶
色阶 PhotoShop的自动色阶功能的实现'***************************自动色阶的模拟指针实现********************************* 
色阶 PhotoShop的自动色阶功能的实现'**  作者          :       laviewpbt 
色阶 PhotoShop的自动色阶功能的实现'**  开发时间      :       2008.7.1 
色阶 PhotoShop的自动色阶功能的实现'**  最后修改时间  :       2008.8.28 
色阶 PhotoShop的自动色阶功能的实现'**  联系方式      :       QQ:33184777 
色阶 PhotoShop的自动色阶功能的实现'**  E-MAIL      :       laviewpbt@sina.com 
色阶 PhotoShop的自动色阶功能的实现'**  Blog          :     http://www.cnblogs.com/laviewpbt/
色阶 PhotoShop的自动色阶功能的实现'**  All Rights Resered,转载请保留以上信息 
色阶 PhotoShop的自动色阶功能的实现'*********************************************************************** 
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现色阶 PhotoShop的自动色阶功能的实现Private Sub CmdPointer_Click()Sub CmdPointer_Click() 

扩展:photoshop自动色阶 / photoshop色阶 / photoshop色阶在哪


色阶 PhotoShop的自动色阶功能的实现    Dim i                  As Long, j                  As Long 
色阶 PhotoShop的自动色阶功能的实现    Dim DataArr(0 To 3)    As Byte, pDataArr(0 To 0)  As Long 
色阶 PhotoShop的自动色阶功能的实现    Dim OldArrPtr          As Long, OldpArrPtr        As Long 
色阶 PhotoShop的自动色阶功能的实现    Dim LineAddBytes        As Long, PixelAddBytes      As Long 
色阶 PhotoShop的自动色阶功能的实现    Dim Bmp                As Bitmap, T                As Long 
色阶 PhotoShop的自动色阶功能的实现                    
色阶 PhotoShop的自动色阶功能的实现    Dim HistRed(255)        As Long, HistGreen(255)        As Long 
色阶 PhotoShop的自动色阶功能的实现    Dim HistBlue(255)      As Long 
色阶 PhotoShop的自动色阶功能的实现    Dim DiffRed            As Long, DiffGreen              As Long 
色阶 PhotoShop的自动色阶功能的实现    Dim DiffBlue            As Long, Diff                  As Long 
色阶 PhotoShop的自动色阶功能的实现    Dim SpeedRed(255)      As Byte, SpeedGreen(255)        As Byte 
色阶 PhotoShop的自动色阶功能的实现    Dim SpeedBlue(255)      As Byte, Speed(255)            As Byte 
色阶 PhotoShop的自动色阶功能的实现    Dim Sum                As Long, Integral              As Long 
色阶 PhotoShop的自动色阶功能的实现    Dim Min                As Long, Max                    As Long 
色阶 PhotoShop的自动色阶功能的实现    Dim NewMin              As Long, NewMax                As Long 
色阶 PhotoShop的自动色阶功能的实现

扩展:photoshop自动色阶 / photoshop色阶 / photoshop色阶在哪


色阶 PhotoShop的自动色阶功能的实现    T = GetTickCount 
色阶 PhotoShop的自动色阶功能的实现    
色阶 PhotoShop的自动色阶功能的实现    GetGDIObject Pic.Picture.Handle, Len(Bmp), Bmp 
色阶 PhotoShop的自动色阶功能的实现    If Bmp.bmBits <> 0 Then                            '是个有效的图片 
色阶 PhotoShop的自动色阶功能的实现        If Bmp.bmBitsPixel < 24 Then Exit Sub            '不处理费真彩色图像,实际上,VB的picture属性也支持8位索引色的Bmp,如果你为了节省内存,采用改格式的图片,可以自行修改代码。 
色阶 PhotoShop的自动色阶功能的实现        MakePoint VarPtrArray(DataArr), VarPtrArray(pDataArr), OldArrPtr, OldpArrPtr 
色阶 PhotoShop的自动色阶功能的实现        PixelAddBytes = Bmp.bmBitsPixel / 8                '可为3,可为4 
色阶 PhotoShop的自动色阶功能的实现        pDataArr(0) = Bmp.bmBits                        '首地址 
色阶 PhotoShop的自动色阶功能的实现        LineAddBytes = Bmp.bmWidthBytes - (Bmp.bmBitsPixel \ 8) * Bmp.bmWidth  '每个扫描行额外多出的字节 
色阶 PhotoShop的自动色阶功能的实现    
色阶 PhotoShop的自动色阶功能的实现        For j = 1 To m_Height 
色阶 PhotoShop的自动色阶功能的实现            For i = 1 To m_Width 
色阶 PhotoShop的自动色阶功能的实现                HistRed(DataArr(2)) = HistRed(DataArr(2)) + 1 
色阶 PhotoShop的自动色阶功能的实现                HistGreen(DataArr(1)) = HistGreen(DataArr(1)) + 1 
色阶 PhotoShop的自动色阶功能的实现                HistBlue(DataArr(0)) = HistBlue(DataArr(0)) + 1 
色阶 PhotoShop的自动色阶功能的实现                pDataArr(0) = pDataArr(0) + PixelAddBytes 
色阶 PhotoShop的自动色阶功能的实现            Next 
色阶 PhotoShop的自动色阶功能的实现            pDataArr(0) = pDataArr(0) + LineAddBytes 
色阶 PhotoShop的自动色阶功能的实现        Next 
色阶 PhotoShop的自动色阶功能的实现      

扩展:photoshop自动色阶 / photoshop色阶 / photoshop色阶在哪


色阶 PhotoShop的自动色阶功能的实现        For i = 0 To 255 
色阶 PhotoShop的自动色阶功能的实现            If HistRed(i) <> 0 Then 
色阶 PhotoShop的自动色阶功能的实现                Min = i 
色阶 PhotoShop的自动色阶功能的实现                Exit For 
色阶 PhotoShop的自动色阶功能的实现            End If 
色阶 PhotoShop的自动色阶功能的实现        Next 
色阶 PhotoShop的自动色阶功能的实现        For i = 255 To 0 Step -1 
色阶 PhotoShop的自动色阶功能的实现            If HistRed(i) <> 0 Then 
色阶 PhotoShop的自动色阶功能的实现                Max = i 
色阶 PhotoShop的自动色阶功能的实现                Exit For 
色阶 PhotoShop的自动色阶功能的实现            End If 
色阶 PhotoShop的自动色阶功能的实现        Next 
色阶 PhotoShop的自动色阶功能的实现        
色阶 PhotoShop的自动色阶功能的实现        Sum = 0 
色阶 PhotoShop的自动色阶功能的实现        For i = Min To Max 
色阶 PhotoShop的自动色阶功能的实现            Sum = Sum + HistRed(i) 
色阶 PhotoShop的自动色阶功能的实现        Next 
色阶 PhotoShop的自动色阶功能的实现        
色阶 PhotoShop的自动色阶功能的实现        Integral = 0 
色阶 PhotoShop的自动色阶功能的实现        For i = Min To Max 
色阶 PhotoShop的自动色阶功能的实现            Integral = Integral + HistRed(i) 
色阶 PhotoShop的自动色阶功能的实现            If Integral >= Sum * 0.005 Then 
色阶 PhotoShop的自动色阶功能的实现                NewMin = i 
色阶 PhotoShop的自动色阶功能的实现                Exit For 

扩展:photoshop自动色阶 / photoshop色阶 / photoshop色阶在哪


色阶 PhotoShop的自动色阶功能的实现            End If 
色阶 PhotoShop的自动色阶功能的实现        Next 
色阶 PhotoShop的自动色阶功能的实现        For i = NewMin + 1 To Max 
色阶 PhotoShop的自动色阶功能的实现            Integral = Integral + HistRed(i) 
色阶 PhotoShop的自动色阶功能的实现            If Integral > Sum * 0.995 Then 
色阶 PhotoShop的自动色阶功能的实现                NewMax = i 
色阶 PhotoShop的自动色阶功能的实现                Exit For 
色阶 PhotoShop的自动色阶功能的实现            End If 
色阶 PhotoShop的自动色阶功能的实现        Next 
色阶 PhotoShop的自动色阶功能的实现        
色阶 PhotoShop的自动色阶功能的实现        For i = 0 To 255 
色阶 PhotoShop的自动色阶功能的实现            If i <= NewMin Then 
色阶 PhotoShop的自动色阶功能的实现                SpeedRed(i) = 0 
色阶 PhotoShop的自动色阶功能的实现            ElseIf i >= NewMax Then 
色阶 PhotoShop的自动色阶功能的实现                SpeedRed(i) = 255 
色阶 PhotoShop的自动色阶功能的实现            Else 
色阶 PhotoShop的自动色阶功能的实现                SpeedRed(i) = (i - NewMin) / (NewMax - NewMin) * 255 
色阶 PhotoShop的自动色阶功能的实现            End If 
色阶 PhotoShop的自动色阶功能的实现        Next 
色阶 PhotoShop的自动色阶功能的实现    
色阶 PhotoShop的自动色阶功能的实现    
色阶 PhotoShop的自动色阶功能的实现色阶 PhotoShop的自动色阶功能的实现    /**/'''''''''''''''''''''''''''' 
色阶 PhotoShop的自动色阶功能的实现      For i = 0 To 255 

扩展:photoshop自动色阶 / photoshop色阶 / photoshop色阶在哪


色阶 PhotoShop的自动色阶功能的实现            If HistGreen(i) <> 0 Then 
色阶 PhotoShop的自动色阶功能的实现                Min = i 
色阶 PhotoShop的自动色阶功能的实现                Exit For 
色阶 PhotoShop的自动色阶功能的实现            End If 
色阶 PhotoShop的自动色阶功能的实现        Next 
色阶 PhotoShop的自动色阶功能的实现        For i = 255 To 0 Step -1 
色阶 PhotoShop的自动色阶功能的实现            If HistGreen(i) <> 0 Then 
色阶 PhotoShop的自动色阶功能的实现                Max = i 
色阶 PhotoShop的自动色阶功能的实现                Exit For 
色阶 PhotoShop的自动色阶功能的实现            End If 
色阶 PhotoShop的自动色阶功能的实现        Next 
色阶 PhotoShop的自动色阶功能的实现        
色阶 PhotoShop的自动色阶功能的实现        Sum = 0 
色阶 PhotoShop的自动色阶功能的实现        For i = Min To Max 
色阶 PhotoShop的自动色阶功能的实现            Sum = Sum + HistGreen(i) 
色阶 PhotoShop的自动色阶功能的实现        Next 
色阶 PhotoShop的自动色阶功能的实现        
色阶 PhotoShop的自动色阶功能的实现        Integral = 0 
色阶 PhotoShop的自动色阶功能的实现        For i = Min To Max 
色阶 PhotoShop的自动色阶功能的实现            Integral = Integral + HistGreen(i) 
色阶 PhotoShop的自动色阶功能的实现            If Integral >= Sum * 0.005 Then 
色阶 PhotoShop的自动色阶功能的实现                NewMin = i 
色阶 PhotoShop的自动色阶功能的实现                Exit For 
色阶 PhotoShop的自动色阶功能的实现            End If 

扩展:photoshop自动色阶 / photoshop色阶 / photoshop色阶在哪


色阶 PhotoShop的自动色阶功能的实现        Next 
色阶 PhotoShop的自动色阶功能的实现        
色阶 PhotoShop的自动色阶功能的实现        For i = NewMin + 1 To Max 
色阶 PhotoShop的自动色阶功能的实现            Integral = Integral + HistGreen(i) 
色阶 PhotoShop的自动色阶功能的实现            If Integral > Sum * 0.995 Then 
色阶 PhotoShop的自动色阶功能的实现                NewMax = i 
色阶 PhotoShop的自动色阶功能的实现                Exit For 
色阶 PhotoShop的自动色阶功能的实现            End If 
色阶 PhotoShop的自动色阶功能的实现        Next 
色阶 PhotoShop的自动色阶功能的实现    
色阶 PhotoShop的自动色阶功能的实现        For i = 0 To 255 
色阶 PhotoShop的自动色阶功能的实现            If i <= NewMin Then 
色阶 PhotoShop的自动色阶功能的实现                SpeedGreen(i) = 0 
色阶 PhotoShop的自动色阶功能的实现            ElseIf i > NewMax Then 
色阶 PhotoShop的自动色阶功能的实现                SpeedGreen(i) = 255 
色阶 PhotoShop的自动色阶功能的实现            Else 
色阶 PhotoShop的自动色阶功能的实现                SpeedGreen(i) = (i - NewMin) / (NewMax - NewMin) * 255 
色阶 PhotoShop的自动色阶功能的实现            End If 
色阶 PhotoShop的自动色阶功能的实现        Next 
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现色阶 PhotoShop的自动色阶功能的实现/**/''''''''''''''''''''''''' 
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现        For i = 0 To 255 

扩展:photoshop自动色阶 / photoshop色阶 / photoshop色阶在哪


色阶 PhotoShop的自动色阶功能的实现            If HistBlue(i) <> 0 Then 
色阶 PhotoShop的自动色阶功能的实现                Min = i 
色阶 PhotoShop的自动色阶功能的实现                Exit For 
色阶 PhotoShop的自动色阶功能的实现            End If 
色阶 PhotoShop的自动色阶功能的实现        Next 
色阶 PhotoShop的自动色阶功能的实现        For i = 255 To 0 Step -1 
色阶 PhotoShop的自动色阶功能的实现            If HistBlue(i) <> 0 Then 
色阶 PhotoShop的自动色阶功能的实现                Max = i 
色阶 PhotoShop的自动色阶功能的实现                Exit For 
色阶 PhotoShop的自动色阶功能的实现            End If 
色阶 PhotoShop的自动色阶功能的实现        Next 
色阶 PhotoShop的自动色阶功能的实现        
色阶 PhotoShop的自动色阶功能的实现        Sum = 0 
色阶 PhotoShop的自动色阶功能的实现        For i = Min To Max 
色阶 PhotoShop的自动色阶功能的实现            Sum = Sum + HistBlue(i) 
色阶 PhotoShop的自动色阶功能的实现        Next 
色阶 PhotoShop的自动色阶功能的实现        
色阶 PhotoShop的自动色阶功能的实现        Integral = 0 
色阶 PhotoShop的自动色阶功能的实现        For i = Min To Max 
色阶 PhotoShop的自动色阶功能的实现            Integral = Integral + HistBlue(i) 
色阶 PhotoShop的自动色阶功能的实现            If Integral >= Sum * 0.005 Then 
色阶 PhotoShop的自动色阶功能的实现                NewMin = i 
色阶 PhotoShop的自动色阶功能的实现                Exit For 
色阶 PhotoShop的自动色阶功能的实现            End If 

扩展:photoshop自动色阶 / photoshop色阶 / photoshop色阶在哪


色阶 PhotoShop的自动色阶功能的实现        Next 
色阶 PhotoShop的自动色阶功能的实现        
色阶 PhotoShop的自动色阶功能的实现        For i = NewMin + 1 To Max 
色阶 PhotoShop的自动色阶功能的实现            Integral = Integral + HistBlue(i) 
色阶 PhotoShop的自动色阶功能的实现            If Integral > Sum * 0.995 Then 
色阶 PhotoShop的自动色阶功能的实现                NewMax = i 
色阶 PhotoShop的自动色阶功能的实现                Exit For 
色阶 PhotoShop的自动色阶功能的实现            End If 
色阶 PhotoShop的自动色阶功能的实现        Next 
色阶 PhotoShop的自动色阶功能的实现    
色阶 PhotoShop的自动色阶功能的实现        For i = 0 To 255 
色阶 PhotoShop的自动色阶功能的实现            If i <= NewMin Then 
色阶 PhotoShop的自动色阶功能的实现                SpeedBlue(i) = 0 
色阶 PhotoShop的自动色阶功能的实现            ElseIf i > NewMax Then 
色阶 PhotoShop的自动色阶功能的实现                SpeedBlue(i) = 255 
色阶 PhotoShop的自动色阶功能的实现            Else 
色阶 PhotoShop的自动色阶功能的实现                SpeedBlue(i) = (i - NewMin) / (NewMax - NewMin) * 255 
色阶 PhotoShop的自动色阶功能的实现            End If 
色阶 PhotoShop的自动色阶功能的实现        Next 
色阶 PhotoShop的自动色阶功能的实现        pDataArr(0) = Bmp.bmBits 
色阶 PhotoShop的自动色阶功能的实现        For j = 1 To m_Height 
色阶 PhotoShop的自动色阶功能的实现            For i = 1 To m_Width 
色阶 PhotoShop的自动色阶功能的实现                DataArr(2) = SpeedRed(DataArr(2)) 

扩展:photoshop自动色阶 / photoshop色阶 / photoshop色阶在哪


色阶 PhotoShop的自动色阶功能的实现                DataArr(1) = SpeedGreen(DataArr(1)) 
色阶 PhotoShop的自动色阶功能的实现                DataArr(0) = SpeedBlue(DataArr(0)) 
色阶 PhotoShop的自动色阶功能的实现                pDataArr(0) = pDataArr(0) + PixelAddBytes 
色阶 PhotoShop的自动色阶功能的实现            Next 
色阶 PhotoShop的自动色阶功能的实现            pDataArr(0) = pDataArr(0) + LineAddBytes 
色阶 PhotoShop的自动色阶功能的实现        Next 
色阶 PhotoShop的自动色阶功能的实现        FreePoint VarPtrArray(DataArr), VarPtrArray(pDataArr), OldArrPtr, OldpArrPtr 
色阶 PhotoShop的自动色阶功能的实现        Pic.Refresh 
色阶 PhotoShop的自动色阶功能的实现    End If 
色阶 PhotoShop的自动色阶功能的实现            
色阶 PhotoShop的自动色阶功能的实现    Me.Caption = "模拟指针用时" & GetTickCount - T & "毫秒" 
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现End Sub 
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现色阶 PhotoShop的自动色阶功能的实现Private Sub MakePoint()Sub MakePoint(ByVal DataArrPtr As Long, ByVal pDataArrPtr As Long, ByRef OldArrPtr As Long, ByRef OldpArrPtr As Long) 
色阶 PhotoShop的自动色阶功能的实现    Dim Temp As Long, TempPtr As Long 
色阶 PhotoShop的自动色阶功能的实现    CopyMemory Temp, ByVal DataArrPtr, 4        '得到DataArrPtr的SAFEARRAY结构的地址 
色阶 PhotoShop的自动色阶功能的实现    Temp = Temp + 12                            '这个指针偏移12个字节后就是pvData指针 
色阶 PhotoShop的自动色阶功能的实现    CopyMemory TempPtr, ByVal pDataArrPtr, 4    '得到pDataArrPtr的SAFEARRAY结构的地址 
色阶 PhotoShop的自动色阶功能的实现    TempPtr = TempPtr + 12                      '这个指针偏移12个字节后就是pvData指针 
色阶 PhotoShop的自动色阶功能的实现    CopyMemory OldpArrPtr, ByVal TempPtr, 4    '保存旧地址 

扩展:photoshop自动色阶 / photoshop色阶 / photoshop色阶在哪


色阶 PhotoShop的自动色阶功能的实现    CopyMemory ByVal TempPtr, Temp, 4          '使pDataArrPtr指向DataArrPtr的SAFEARRAY结构的pvData指针 
色阶 PhotoShop的自动色阶功能的实现    CopyMemory OldArrPtr, ByVal Temp, 4        '保存旧地址 
色阶 PhotoShop的自动色阶功能的实现End Sub 
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现色阶 PhotoShop的自动色阶功能的实现Private Sub FreePoint()Sub FreePoint(ByVal DataArrPtr As Long, ByVal pDataArrPtr As Long, ByVal OldArrPtr As Long, ByVal OldpArrPtr As Long) 
色阶 PhotoShop的自动色阶功能的实现    Dim TempPtr As Long 
色阶 PhotoShop的自动色阶功能的实现    CopyMemory TempPtr, ByVal DataArrPtr, 4        '得到DataArrPtr的SAFEARRAY结构的地址 
色阶 PhotoShop的自动色阶功能的实现    CopyMemory ByVal (TempPtr + 12), OldArrPtr, 4  '恢复旧地址 
色阶 PhotoShop的自动色阶功能的实现    CopyMemory TempPtr, ByVal pDataArrPtr, 4        '得到pDataArrPtr的SAFEARRAY结构的地址 
色阶 PhotoShop的自动色阶功能的实现    CopyMemory ByVal (TempPtr + 12), OldpArrPtr, 4  '恢复旧地址 
色阶 PhotoShop的自动色阶功能的实现End Sub 
色阶 PhotoShop的自动色阶功能的实现
色阶 PhotoShop的自动色阶功能的实现

      编译后测试,同样1024*768大小的图片,用模拟指针方法只需32ms左右,这个时间人是基本看不到延迟的。用VC的话也就在这个时间范围内。 


      怎么样,对VB的信心是不是又增加了不少,是的,VB一直是很优秀的。以前是,现在是,将来也是。 

      示例工程中有部分代码和本文中给出的不一致,但这不影响大局。

'******************************你的评论是我发表文章的极大动力**'**************************

'***************************欢迎和你讨论图像技术问题:QQ 33184777************************

扩展:photoshop自动色阶 / photoshop色阶 / photoshop色阶在哪

三 : 成功,源自突破现实

  在当今世界,没有一个人在世界上或者国家中的地位是指定的,也不会有永久的王。正如一个企业应在逆境中努力进取以求生存,在顺境中也应有足够的忧患意识,想要成功,想要保持成功者的地位,就必需要突破现实。

  每一个成功者,或者基本上所有的成功人士,都经历过大量挫折才走到今天这个地位,“每一个成功的企业家都会有他成功的地方,每个失败的企业家都有他失败的理由。”所有的成功者都引领着自己的团队不断突破,但如果其中一个人停下脚步,坐享安乐,那么失败就离他不远了。这个方面最有力的例子就是当年的市场霸主诺基亚公司,当年他曾经雄霸了整个电子产品市场,拥有无人可比的市场创新能力,这源于它铭记于心的忧患意识,它从不满足现实所取得的成就,走在科技前沿。可现在,在身边已经难觅诺基亚的身影了,因为诺基亚公司在取得巨大成就后,便十分“傲慢”,没能赶上时代步伐,被日益强大的苹果三星,HTC踩在脚下,在三次大裁员仍未解决资金问题后,申请了破产保护,最终被微软收购。

  因为忧患意识而取得成功的例子有很多,如苹果公司从1976年的默默无闻到现在人尽皆知的高端手机领导者,大量竞争对手使它充满忧患意识,激发了它创新的无限潜力,它不断突破现实,股价连连增长,已突破6000亿美元。确实,也必须承认,有些企业靠模仿也在这个市场上生存了下来,如在Iphone5上市,十天后夏星公司和AWP公司便相继推出了五代智能机,比iPhone便宜很多,虽然销量上远远不及,但没有任何亏损,由于不少功能不及iPhone,用的是安卓系统,所以苹果公司也就睁只眼闭只眼,也就这样获利不少。不过,这种公司再怎么获利,没有突破肯定不会有长久生存的机会,这些公司会永远默默无闻,被其他有创新的品牌,被国际市场小视,最后迟早会被时代淘汰。

  生活中我们也应该有足够的忧患意识,生活中的每一件事做完美了或者做成了都会是一种锻炼,时代在发展,也许有时除了学习以外多了解科技方面的发展也不是坏事,有些时候不断努力地突破一件你办不到的事情也可能成为未来成功的基础,现实未必是绝对的,花费一些本可以自由的时间研究感兴趣的东西,未来也就可能变得更成功。

  当我们生活的世界不断改变,我们必须跟上脚步,走在时代的前沿,了解更多科技和未来,做好我们的本职工作。未来,指在突破现实,走向成功的彼岸!

 

    上海松江区民办包玉刚实验学校(初中部)初二:Ricky Yu

本文标题:轻触开关实现自锁功能-新一代小米插线板正式发布 功能更加强大 触控开关
本文地址: http://www.61k.com/1165625.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1