精华内容
下载资源
问答
  • QT摄像头支持

    万次阅读 热门讨论 2014-04-08 15:55:50
    Qt从5.0开始支持android摄像头,但是目前还没有做到统一完全跨平台API。还需要根据不同的平台系统来处理。这是因为Qt中QImage支持格式不全,现在不支持YUV格式。 Qt中捕获视频流用两种方式: 一、用QCamera::...

    Qt从5.0开始支持android摄像头,但是目前还没有做到统一完全跨平台API。还需要根据不同的平台系统来处理。这是因为Qt中QImage支持格式不全,现在不支持YUV格式。

    Qt中捕获视频流用两种方式:

    一、用QCamera::setViewfinder(QAbstractVideoSurface *surface)

    先从QAbstractVideoSurface派生子类:

    class MyVideoSurface : public QAbstractVideoSurface
    {
        QList<QVideoFrame::PixelFormat> supportedPixelFormats(
                QAbstractVideoBuffer::HandleType handleType = QAbstractVideoBuffer::NoHandle) const
        {
            Q_UNUSED(handleType);
    
            // 返回你将处理的格式
           return QList<QVideoFrame::PixelFormat>()
                    << QVideoFrame::Format_RGB32  //windows 平台、linux 平台默认都支持 RGB32 格式  
                    << QVideoFrame::Format_RGB24
                    << QVideoFrame::Format_ARGB32
                    << QVideoFrame::Format_ARGB32_Premultiplied
                    << QVideoFrame::Format_RGB565
                    << QVideoFrame::Format_RGB555
                    //android支持的格式   
                    << QVideoFrame::Format_NV21
                    << QVideoFrame::Format_YV12
                    << QVideoFrame::Format_RGB565
                    << QVideoFrame::Format_YUV420P
                    << QVideoFrame::Format_YUYV
                    << QVideoFrame::Format_AYUV444
                    << QVideoFrame::Format_Jpeg
                    ;
        }    
    
        bool present(const QVideoFrame &frame)   
        { 
           Q_UNUSED(frame);        // 处理捕获的帧     
           return true;    
        }
    };
    
    
    MyVideoSurface surface;
    QCamera m_Camera;
    m_Camera.setCaptureMode(QCamera::CaptureMode::CaptureVideo);
    m_Camera.setViewfinder(&surface);
    
    

     


    二、用QVideoProbe

    camera = new QCamera;
    viewfinder = new QCameraViewfinder();
    camera->setViewfinder(viewfinder);
    
    camera->setCaptureMode(QCamera::CaptureVideo);
    
    videoProbe = new QVideoProbe(this);
    
    if (videoProbe->setSource(camera)) {
        // Probing succeeded, videoProbe->isValid() should be true.
        connect(videoProbe, SIGNAL(videoFrameProbed(QVideoFrame)),
                this, SLOT(detectBarcodes(QVideoFrame)));
    }
    
    camera->start();
    // Viewfinder frames should now also be emitted by
    // the video probe, even in still image capture mode.
    // Another alternative is to install the probe on a
    // QMediaRecorder connected to the camera to get the
    // recorded frames, if they are different from the
    // viewfinder frames.


     

    windows支持格式为RGB24、RGB32;android支持格式为NV21

     

    下面我对捕获和显示进行了封装:

    CaptureVideoFrame.h

    /*
     * 作者:康林(msn、email: kl222@126.com)
     *
     * 从摄像头(QCarmera)或者(Player)中捕获视频帧。
     * 注意:android后景摄像头捕获的视频翻转-90度,前景摄像头翻转90度。
     * 用法:
     *      QCamera m_Camera;
     *      m_Camera.setCaptureMode(QCamera::CaptureVideo);
     *      CCaptureVideoFrame videoFrame;
     *      videoFrame.setSource(&m_Camera);
     * 注册SLOT:
     *      connect(&videoFrame, SIGNAL(CaptureFrame(const QVideoFrame&)),
     *           SLOT(CaptureVideoFrame(const QVideoFrame&)));
     * 在SLOT 中 CaptureVideoFrame(const QVideoFrame&) 处理捕获到的视频帧。
     *
     * 示例代码:
     *   QList<QByteArray> device = QCamera::availableDevices();
     *   QList<QByteArray>::iterator it;
     *   for(it = device.begin(); it != device.end(); it++)
     *   {
     *       qDebug("Camera:%s", qPrintable(QCamera::deviceDescription(*it)));
     *   }
     *
     *   QCamera camera(QCamera::availableDevices().at(1));
     *   camera.setCaptureMode(QCamera::CaptureVideo);
     *   CFrmPlayer player;
     *   CCaptureVideoFrame captureVideoFrame;
     *   if(captureVideoFrame.setSource(&camera))
     *   {
     *       qDebug("probe.setSource is ok");
     *       player.connect(&captureVideoFrame, SIGNAL(CaptureFrame(QVideoFrame)),
     *                      SLOT(present(QVideoFrame)));
     *   }
     *
     *   player.show();
     *   player.activateWindow();
     *   camera.start();
     */
    
    #ifndef CAPTUREVIDEOFRAME_H
    #define CAPTUREVIDEOFRAME_H
    
    #include <QAbstractVideoSurface>
    #include <QCamera>
    
    class CCaptureVideoFrame : public QAbstractVideoSurface
    {
        Q_OBJECT
    public:
        explicit CCaptureVideoFrame(QObject *parent = 0);
    
        virtual QList<QVideoFrame::PixelFormat> supportedPixelFormats(
                QAbstractVideoBuffer::HandleType handleType = QAbstractVideoBuffer::NoHandle) const;
    
        bool setSource(QCamera *pCamera);
    
    signals:
        //视频帧捕获信号
        void CaptureFrame(const QVideoFrame &frame);
    
    private slots:
        virtual bool present(const QVideoFrame &frame);
    
    };
    
    #endif // CAPTUREVIDEOFRAME_H
    


    CaptureVideoFrame.cpp

    /** 作者:康林(msn、email: kl222@126.com)*/
    #include "CaptureVideoFrame.h"
    #include <QCamera>
    
    CCaptureVideoFrame::CCaptureVideoFrame(QObject *parent) :
        QAbstractVideoSurface(parent)
    {
    }
    
    QList<QVideoFrame::PixelFormat> CCaptureVideoFrame::supportedPixelFormats(QAbstractVideoBuffer::HandleType handleType) const
    {
        Q_UNUSED(handleType);
        return QList<QVideoFrame::PixelFormat>()
                    << QVideoFrame::Format_RGB32  //windows 平台、linux 平台默认都支持 RGB32 格式  
                    << QVideoFrame::Format_RGB24
                    << QVideoFrame::Format_ARGB32
                    << QVideoFrame::Format_ARGB32_Premultiplied
                    << QVideoFrame::Format_RGB565
                    << QVideoFrame::Format_RGB555
                    //android支持的格式   
                    << QVideoFrame::Format_NV21
                    << QVideoFrame::Format_YV12
                    << QVideoFrame::Format_RGB565
                    << QVideoFrame::Format_YUV420P
                    << QVideoFrame::Format_YUYV
                    << QVideoFrame::Format_AYUV444
                    << QVideoFrame::Format_Jpeg
                    ;
    }
    
    //捕获视频帧。windows下格式是RGB32;android下是NV21bool
    CCaptureVideoFrame::present(const QVideoFrame &frame){ 
       qDebug("CCaptureVideoFrame::present format:%d", frame.pixelFormat());
       emit CaptureFrame(frame);
       return true;
    }
    
    //根据不同的平台,设置捕获方式bool
    CCaptureVideoFrame::setSource(QCamera *pCamera){
        bool ret = true;
        //捕获视频 
       pCamera->setViewfinder(this);
       return ret;
    }
    

                 

    
     

     

    源码:https://github.com/KangLin/FaceRecognizer/blob/master/Src/CameraQtCaptureVideoFrame.h

    或者:https://github.com/KangLin/RabbitIm/tree/master/Media/Camera

     

    QT对摄像头的支持存在的一些问题:

    QT得到到捕获帧相关的参数

    QT 在windows、linux下捕获视频只有5帧/秒左右,在我的电脑上用时 240ms 左右。在Android手机上可达到15帧/s(60ms左右)。

    QT 在 windows、linux下多个摄像头切换正常,但在 android 手机上,前后摄像头不能切换。代码如下:

    void CFrmVideo::on_cmbCamera_currentIndexChanged(int index)
    {
        LOG_MODEL_DEBUG("Video", "CFrmVideo::on_cmbCamera_currentIndexChanged");
    
        m_CameraPostition = QCamera::availableDevices().at(index);
    
        OpenCamera();
        LOG_MODEL_DEBUG("Video", "CFrmVideo::on_cmbCamera_currentIndexChanged end");
    }
    
    int CFrmVideo::OpenCamera()
    {
        if(!m_pCall)
        {
            LOG_MODEL_ERROR("Video", "CFrmVideo::OpenCamera m_pCall is null");
            return -1;
        }
    
        if(m_pCamera)
        {
            CloseCamera();
        }
    
        m_pCamera = new QCamera(m_CameraPostition);
        if(!m_pCamera)
        {
            LOG_MODEL_WARNING("Video", "Open carmera fail");
            return -1;
        }
    
        m_pCamera->setCaptureMode(QCamera::CaptureVideo);
        m_CaptureVideoFrame.setSource(m_pCamera);
    
        //m_pCamera->load();
        m_pCamera->start();
        return 0;
    }
    
    int CFrmVideo::CloseCamera()
    {
        if(m_pCamera)
        {
            m_pCamera->stop();
            //m_pCamera->unload();
            delete m_pCamera;
            m_pCamera = NULL;
        }
        return 0;
    }
    展开全文
  • jupyter添加JAVA/C++支持

    千次阅读 2019-07-21 15:40:09
    最近很喜欢使用jupyter这个IDE,因为jupyter有所见即所得的效果,于是想让 Jupyter添加java、C++的支持Java的支持 首先要保证java版本在java9或以上 1、从https://github.com/SpencerPark/IJava/releases...

    最近很喜欢使用jupyter这个IDE,因为jupyter有所见即所得的效果,于是想让 Jupyter添加对java、C++的支持。Jupyter Notebook 支持非常多的编程语言,而且可以直接运行这些语言的代码。要让 Jupyter Notebook 能够运行特定语言的代码,需要添加对应的内核。具体支持的语言及内核可以查看该链接: https://github.com/jupyter/jupyter/wiki/Jupyter-kernels 。下面分别讲述对java和c++的支持。

    对Java的支持

    首先要保证java版本在java9或以上
    1、从https://github.com/SpencerPark/IJava/releases下载ijava-1.3.0.zip,解压。
    在这里插入图片描述
    2、python setup.py –sys-prefix
    3、jupyter kernelspec list
    在这里插入图片描述
    可以看到jupyter对java的支持添加成功。

    对C++的支持

    1、添加 C++ cling 内核,克隆 cling 的 Github 官方仓库:
    git clone https://github.com/root-project/cling.git
    在进行编译操作之前,首先要确保你的机器上已经装好了 cmake 工具,即能够直接通过输入命令 cmake执行程序。
    如果cmake已经正确安装,就可以进行以下的操作了。
    切换到cling/tools/packaging/目录下,执行以下两条命令:
    chmod +x cpt.py
    ./cpt.py --check-requirements && ./cpt.py --create-dev-env Debug --with-workdir=./cling-build/
    在这里插入图片描述这个过程包含了从网络上获取源文件以及编译,是最为耗时的一个阶段,以小时计。
    编译完成后,需要先添加环境变量,在.bashrc中添加

    #Jupyter支持C++
    export PATH=$PATH:/home/wc/cling/tools/packaging/cling-build/builddir/bin
    

    然后source .bashrc让该文件生效

    然后需要在 python3 中安装 clingkernel。切换到 cling/tools/Jupyter/ 目录下,执行
    pip3 install kernel/
    最后一步,往 Jupyter Notebook 中添加 cling 内核,可以根据自己的需要安装特定 C++ 规范的 cling 内核,例如 cling-cpp11, cling-cpp14, cling-cpp17。
    jupyter kernelspec install kernel/cling-cpp17
    如果没有其他问题,此时就可以打开 Jupyter Notebook 感受不一样的 C++ 编程了!
    官方代码示例:

    class Rectangle {  
        private:
            double w;
            double h;
     
        public:
     
            Rectangle(double w_, double h_) {
                w = w_;
                h = h_;
            }
            double area(void) {
                return w * h;
            }
            double perimiter(void) {
                return 2 * (w + h);
            }
    };
    Rectangle r = Rectangle(5, 4); 
    r.area();
    

    最终运行结果
    在这里插入图片描述
    关于安装cling,需要慎重,因为下载编译之后该文件夹占空间达到30多个G,如果空间不够,小心把系统搞死。

    参考

    https://blog.csdn.net/qq_39973546/article/details/80152416
    http://blog.sina.com.cn/s/blog_541944e10102xla0.html
    更简单的支持C++方法

    展开全文
  • 当前浏览器HTML5支持状况(全平台)

    万次阅读 2015-08-24 19:14:53
    题记HTML5test 这个网站专门测试浏览器HTML5支持状况,只要的浏览器打开HTML5test这个页面,就会得到一个测评的分数,然后会列出当前浏览器哪些特性支持良好,哪些不支持简易测试如图:360极速浏览器测试的(内核...

    题记

    HTML5test 这个网站专门测试浏览器对HTML5支持状况,只要你的浏览器打开HTML5test这个页面,
    就会得到一个测评的分数,然后会列出你当前浏览器对哪些特性支持良好,哪些不支持


    简易测试

    如图:

    360极速浏览器测试的(内核是chromium 42) – 极速模式;

    这里写图片描述

    我稍微看了下不支持的特性…都是比较少用到的特性…. 所以总体来说,在H5和CSS3下的体验是相当良好的

    而我本地的chrome 43 的分数才521 . 还少了两分,可能优化还没做好….最新的44版本,526,在所有浏览器中,对HTML5支持是最为完善的;

    IE11和edge(WIN 10下的),我测试了下,,对HTML5的支持还是比较完善的;尤其是EDGE,简直升了一个台阶(相对于IE系列);

    IE11:

    这里写图片描述

    EDGE

    这里写图片描述

    其他的不多说,直接上数据图!!!;


    数据对比

    PC端

    这里写图片描述

    • 其中支持最为完善是chrome系列
    • opera改为chromium内核了..所以分数基本一致
    • 出乎意料的是Firefox,W3C标准一直都在最前沿的,对H5的支持竟然不是最高的!!!
    • IE10以下,H5的体验就差强人意了…只能支持一部分
    • Safari的老版本比IE老版本系列好太多….

    平板

    这里写图片描述

    • chrome依旧牛逼,稳居第一
    • 其他的大同小异(IE除外)
    • 不过最新的edge挺不错的,不管是移动端还是PC端…大跃进啊~~
    • 所以移动端的兼容性比PC端要好上很多,各种特性任性用!!

    手机端

    这里写图片描述

    • 手机端的各大系列浏览器支持都很不错…除了个别很老的系列…

    总结

    • 使用chrome系列或者chromium内核的浏览器对HTML5/CSS3支持是比较完善的,
    • 而最新崛起的edge似乎更有看头,能不能消除IE系列的影响就看这货了…或许过上两年,WIN10的比重取代了WIN7的比重…那时候就可以任性的用最新特性写各种特效,各种更人性化的标签; 而不是现在的各种模拟,各种兼容
    • XP这货总会过去的,死磕怀旧的毕竟是少数,为了更好的体验,人总会往上看的!!

    数据时间: 2015-8-24
    来源: HTML5test

    展开全文
  • Spring多线程支持

    万次阅读 多人点赞 2017-07-24 16:17:52
    JDK给我们提供了非常方便的操作线程的API,JDK5之后更是新增了JUC包的支持,并发编程大师Doug Lea(JDK并发的作者)也是一直在为我们使用线程做着不懈的努力。 为什么还要使用Spring来实现多线程呢?这是句废话!...

    在我们的应用系统中,经常会处理一些耗时任务,自然而然的会想到使用多线程。JDK给我们提供了非常方便的操作线程的API,JDK5之后更是新增了JUC包的支持,并发编程大师Doug Lea(JDK并发的作者)也是一直在为我们使用线程做着不懈的努力。

    为什么还要使用Spring来实现多线程呢?这是句废话!实际有两个原因,第一使用Spring比使用JDK原生的并发API更简单。第二我们的应用环境一般都会集成Spring,我们的Bean也都交给Spring来进行管理,那么使用Spring来实现多线程更加简单,更加优雅。(更多的可能是在环境中就要这么用!!)

    在Spring3之后,Spring引入了对多线程的支持,如果你使用的版本在3.1以前,应该还是需要通过传统的方式来实现多线程的。从Spring3同时也是新增了Java的配置方式,而且Java配置方式也逐渐成为主流的Spring的配置方式,因此后面的例子都是以Java的配置进行演示。

    废话有点多,下面具体说说该如何在Spring中实现多线程,其实非常简单,只需要在配置类中添加@EnableAsync就可以使用多线程。在希望执行的并发方法中使用@Async就可以定义一个线程任务。通过spring给我们提供的ThreadPoolTaskExecutor就可以使用线程池。下面举个例子来说明

    首先定义配置类

    如果对Java配置方式不了解的童鞋,可以参考这篇文章《初识SpringJava配置》

    package com.hy.spring.test7;
    
    import java.util.concurrent.Executor;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.scheduling.annotation.EnableAsync;
    import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
    
    @Configuration
    @ComponentScan("com.hy.spring.test7")
    @EnableAsync  // 启用异步任务
    public class ThreadConfig  {
    
         // 这里是声明一个bean,类似于xml中的<bean>标签。
         // Executor 就是一个线程池
         @Bean
         public Executor getExecutor() {
              ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
              executor.setCorePoolSize(5);
              executor.setMaxPoolSize(10);
              executor.setQueueCapacity(25);
              executor.initialize();
              return executor;
         }
    }

    定义要执行的任务

    package com.hy.spring.test7;
    
    import java.util.Random;
    import java.util.UUID;
    
    import org.springframework.scheduling.annotation.Async;
    import org.springframework.stereotype.Service;
    
    @Service // 注解的方式把AsyncService交给Spring来管理
    public class AsynTaskService {
    
         // 这里可以注入spring中管理的其他bean,这也是使用spring来实现多线程的一大优势
         
         @Async    // 这里进行标注为异步任务,在执行此方法的时候,会单独开启线程来执行
         public void f1() {
              System.out.println("f1 : " + Thread.currentThread().getName() + "   " + UUID.randomUUID().toString());
              try {
                  Thread.sleep(new Random().nextInt(100));
              } catch (InterruptedException e) {
                  e.printStackTrace();
              }
         }
    
         @Async
         public void f2() {
              System.out.println("f2 : " + Thread.currentThread().getName() + "   " + UUID.randomUUID().toString());
              try {
                  Thread.sleep(100);
              } catch (InterruptedException e) {
                  e.printStackTrace();
              }
         }
    }

    测试类

    package com.hy.spring.test7;
    
    import org.springframework.context.annotation.AnnotationConfigApplicationContext;
    
    public class Main {
    
         public static void main(String[] args) {
              AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ThreadConfig.class);
              AsynTaskService service = context.getBean(AsynTaskService.class);
    
              for (int i = 0; i < 10; i++) {
                  service.f1(); // 执行异步任务
                  service.f2();
              }
              context.close();
         }
    }

    输出结果

    f1 : ThreadPoolTaskExecutor-5   20e6ba88-ae51-42b9-aac6-ed399419fe6d

    f2 : ThreadPoolTaskExecutor-2   0d7b1da4-e045-4d58-9054-e793f931cae1

    f2 : ThreadPoolTaskExecutor-4   17b8d7c7-24e3-4bcf-b4da-822650a8f0be

    f1 : ThreadPoolTaskExecutor-3   a9b32322-1c9b-4fc7-9c2a-1f7a81f2b089

    f1 : ThreadPoolTaskExecutor-1   13a85fde-73c7-4c9b-9bb2-92405d1d3ac4

    f2 : ThreadPoolTaskExecutor-3   8896caaf-381c-4fc3-ab0f-a42fcc25e5fd

     

    可以看到我们两个任务是异步进行的。

     

    下面关于线程池的配置还有一种方式,就是直接实现AsyncConfigurer接口,重写getAsyncExecutor方法即可,代码如下

     

    package com.hy.spring.test7;
    
    import java.util.concurrent.Executor;
    
    import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.scheduling.annotation.AsyncConfigurer;
    import org.springframework.scheduling.annotation.EnableAsync;
    import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
    
    @Configuration
    @ComponentScan("com.hy.spring.test7")
    @EnableAsync
    public class ThreadConfig implements AsyncConfigurer {
    
         @Override
         public Executor getAsyncExecutor() {
              ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
              executor.setCorePoolSize(5);
              executor.setMaxPoolSize(10);
              executor.setQueueCapacity(25);
              executor.initialize();
              return executor;
         }
    
         @Override
         public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
              return null;
         }
    
    }

    使用Spring实现多线程是不是非常简单。

     

    展开全文
  • MySQL Connector/J 从5.0.0版本之后开始直接提供XA的支持。 需要注意的是, 在DTP模型中,mysql属于资源管理器(RM)。而一个完整的分布式事务中,一般会存在多个RM,由事务管理器TM来统一进行协调。因此,这里所...
  • FeignHystrix的支持

    万次阅读 2016-12-18 17:26:18
    如果Hystrix在classpath下,默认情况下将包括Feign与断路器的所有方法。返回一个com.netflix.hystrix.HystrixCommand去使用,...要禁用Feign的Hystrix支持,设置feign.hystrix.enable=false。要在每个客户端上禁用Hyst
  • JDK | SwitchString的支持

    万次阅读 2019-06-11 19:50:12
    但是,作为一个程序员我们不仅要知道他有多么好用,还要知道它是如何实现的,switch整型的支持是怎么实现的呢?字符型是怎么实现的呢?String类型呢?有一点Java开发经验的人这个时候都会猜测switc...
  • Eclipse Java8 的支持

    千次阅读 2015-05-09 13:21:24
    Eclipse Luna SR2已经添加...如果懒得下载Luna,并且已经有 Kepler SR2,可以通过下面三个步骤,添加java8的支持。亲测成功 下述方法是在(Mac Yosemite + 英文版 Eclipse Kepler SR)的环境下进行的。 第一步:
  • ThinkPHPAjax完全支持

    千次阅读 2009-08-29 14:00:00
    ThinkPHPAjax完全支持ThinkPHP完全支持Ajax,并且还内置了一个SmartAjax和ThinkAjax类库,可以不通过任何其他Ajax类库包就可以在ThinkPHP中使用Ajax支持。首先说一下ThinkPHP的JS类库以及如何在ThinkPHP中引入Js...
  • 【ML】支持向量机(SVM)从入门到放弃再到掌握

    万次阅读 多人点赞 2018-08-23 16:46:26
    朋友,通过各种不同的途经初次接触支持向量机(SVM)的时候,是不是会觉得这个东西耳熟能详,感觉大家都会,却唯独自己很难理解? 每一次的老板或者同仁让讲解SVM的时候,觉得看过这么多资料,使用过...
  • 内核添加yaffs2文件系统的支持

    千次阅读 2016-11-14 12:38:42
    GitHub 内核添加yaffs2文件系统的支持 AderXCoding/system/tools/yaffs2 本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可, 转载请注明出处, 谢谢合作 1 yaffs介绍YAFFS, Yet ...
  • VS2017python支持情况简评

    万次阅读 2018-01-16 21:55:02
    refs: http://www.cjjjs.com/paper/xmkf/2017102812951311.html 使用VS2017来开发python程序优缺点: 优点: ... 1....2.支持可视化的python虚拟环境的管理。如上图的env  3.可以直观
  • 配置ApacheCGI的支持

    万次阅读 2012-04-10 08:46:38
    在http.conf或 /etc/apache2/mods-enable/cgi.load 文件里,(我的是在目录/usr/local/apache2/conf/下面的http.conf)加入CGI支持: LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so //默认有则不...
  • Ubuntu下双显卡的支持问题

    千次阅读 2012-06-24 12:04:33
    Ubuntu下双显卡的支持问题 2012-6-21 01:29 提问者: yuyuen72 | 浏览次数:28次 我的电脑双显,我想在ubuntu中禁用独立显卡,可以吗?怎么做?本人刚入手这个系统,详细点儿。 我来帮他解答 ...
  • Linux内核最近跃进到了4.x时代,初看没啥大的动作,但是对于我而言,最令人兴奋的还是它硬交换模块的支持。这也是为全面迎合SDN做好准备的第一步。Linux上的路由与交换Linux诞生于网络,天生网络拥有全面且强大...
  • 的页面支持WebP图像!

    万次阅读 2016-09-26 20:19:21
     WebP是Google推出的一种图片格式,它基于VP8编码,可图像大幅压缩。与JPEG相同,WebP也是一种有损压缩,但在画质相同的情况下,WebP格式比JPEG图像小40%。 Wiki 百度百科  它是一个开源项目,我们可以在此...
  • Spring国际化的支持

    万次阅读 2009-11-26 17:10:00
    Spring使用拦截器支持国际化很方便,使用时只需要两个步骤: 一.spring配置 具体配置方式如下: class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" /> 
  • Android中关于APK遥控器支持的修改

    万次阅读 2013-08-27 22:14:09
    最近,Andoid中APK做了一些修改,让其支持遥控器的支持,这把人弄得焦头烂额,好不郁闷,这里特别记录下思路,留给有需要的同志。  其实Android本身是做了遥控器的上下左右按键的焦点移动控制,以及Enter键...
  • 微信端内置浏览器canvas的支持有问题 blue_blue 7 2月3日 提问 · 2月3日 更新 关注 5 关注 收藏 1 收藏,2.9k 浏览 问题人有帮助,内容完整,我也想知道答案 0 ...
  • 从版本18.01-ce开始,Docker for Mac 和 Docker for Windows 都已经开始Kubernetes支持了,开发者想要部署他们的容器化应用到kubernetes可以使用orchestrator,而不必再使用SwarmKit了。 当第一次在设置中开启...
  • 之前 写过一篇在 ubuntu 下安装...好消息是,Google官方在11月29号的开发者博客中宣布新的版本(0.12)将 增加Windows的支持,我11月30号知道的,立马就安装试了试,安装过程非常简单,不过也有一些需要手动调整。...
  • 对于有些人觉得装了dev后,vs工具箱没有,一般都是以下两大问题:1、要么的Dev的版本不支持你当前的VS版本,没有很正常。2、要么的项目的.net版本并不支持当前版本Dev,修改项目的.net版本即可另外如果以上都...
  • 因为Maven和Gradle的实现不同,所以Spring Boot它们的使用支持也不同。 Maven 每次Spring Boot新版本发布时都会提供一个它所支持的Spring模块及第三方库版本列表,例如Spring Boot1.5.10版本支持...
  • 本文探讨了VS2010编译工具clC++11标准的支持情况,提供了利用C++11新特性的两段代码来进行测试,并同g++ 4.9.3编译器的编译情况相对比。总的说来:VS2010的编译器工具cl部分支持了C++11标准,而g++ 4.9.3则全部...
  • Google的App引擎添加了Node.js的支持

    千次阅读 2016-03-24 08:54:29
    JavaScript开发者现在可以使用Google的PaaS云服务来构建网页应用和移动端的服务了!Google宣布,将于Node....从这周开始,将会以测试形式提供JavaScript服务端的支持。开发者可以使用倍受欢迎的Js语言开发服务端程...
  • 适配:解决IE9以下H5不支持的方法

    千次阅读 2017-02-21 14:39:01
    respond.min: 让不支持css3 Media Query的浏览器包括IE6-IE8等其他浏览器支持查询。 由于IE6/IE7/IE8还有很大一部分用户,为了让网站浏览者都能正常的访问HTML5网站,故这两种方案还是需要的。
  • 本篇文章主要是介绍下国产开源流媒体SRS涉及的入门资料,SRS前期标的nginx-rtmp-module,是国内第一款真正开源的流媒体服务,应用在直播和RTC领域。但是成立同学志存高远,不仅仅局限于某一个行业,近期WebRTC、...
  • 如果使用的语言不在支持的范围内,可以通过 google云平台来定制自己的开发环境 ;同时gae已经支持Docker,这一切给 Google App Engine带来更高的开放性和灵活性,这些让想用技术改变世界的工程师们有了很广阔的...
  • 支持对系统目录进行即席更新 --如果"allow updates"选项被设置为"1",那么在使用语句:   EXEC sp_configure 'show advanced options', 1 ;GORECONFIGURE ; --没有加上WITH OVERRIDE,就...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,437,391
精华内容 974,956
关键字:

对您的支持