• 开发照片采集系统中的问题总结


    回顾这个问题开始,已经快两个月了,目前window版本已经开发完成,正在进行Web版本的开发。其间从无到有,结合前人的经验和代码,顺便把其中的一些问题列举出来,一步一步解决。

    1.选择方式,选择ATL IPicture支持。

    2.载入一张BMP/JPEG图片并显示

    3.实现图片放大缩小,拖拽

    4.实现图片合成

    5.内存画图防止闪烁

    6.剪切一部分图片,保存为BMP

    7.剪切一部分图片,保存为JPEG ,使用GDI+

    8.剪切一部分图片,设置dpi为300,使用GDI+

    9.在HDC中合成另一张图片

    10.合成一张图片并使其背景透明

    11.HDC输出文字

    12.HDC输出文字设置字体

    13.16bit和32bit模式下兼容透明背景

    14.WMD视屏处理,使用DirectShow

    15.搭建DirectShow环境,使用DirectX 9.0b的版本

    16.视频的捕捉

    17.视频Filter和截图

    18.在视频中插入文字和图片

    19.采用视频采集卡,目前有USB方式和PCI插卡方式,这两种方式都是需要支持WDM的。

    20.需要在控件中添加一些基本的视频设置,例如视频制式,视频通道,视频格式等,而且不同的系统和硬件DirectShow支持的方式不一样,因此需要判断哪些功能是本系统和硬件支持的。可以参考DrectshowSDK中很出名的AMCAP做为例程研究。

    21.视频问题和图形问题解决后,就是相机开发的具体问题了,这个时候要研究相机的API,厂家给的API都是会给例程的,按着例程来做,总不会错。但是开发之前,首先要对拍照的一些术语进行了解,比如什么是白平衡,什么是AWAF,闪光的模式,什么是曝光,什么是B门拍摄,什么是曝光增益,什么是Macro。有条件最好找给摄影师来咨询。

    22.到现场不能成功拍照的问题很多,遇见最多的就是不能聚焦无法拍照,因为我们选择的是一款单反,所以当选择聚焦优先的时候,如果是一堵花墙或者单色强就无法聚焦成像,需要更改拍摄模式。关于拍摄模式,目前还在研究中,不过主要是相机中固定的集中模式。

    23.开发WEB版,开发WEB版以为很顺利,但是却完全不是,首先就遇见了刷新问题,在WINDOW版的ONDRAW中,一个FireChange()只刷新一次,而在IE容器中却要刷新N次,每次150个像素高度的刷新。这让原有的程序在刷新上有了不小的调整。

    24.第二个问题是,WEB中空间没有句柄,也就是说控件的容器就是IE的显示窗口,这个时候你要得到客户端的尺寸得到的就是整个IE的尺寸。所以也需要进行调整(WINDOW程序只需要加一个PANEL就好)。

    25.就是键盘捕捉的问题,WINDOW下和IE中键盘捕捉有所区别,WINDOWS可以处理WM_KEYDOW或UP信息,而IE却不行,需要在点击的时候设置一下ACTIVEX的模式状态。这样才能在相应的消息重载函数中捕获。overload

    26.就是软件驱动的部署问题(具体相机型号有所不同),与WINDOW版不一样

    WINDOW版本用的DELPHI调用ATL空间,WEB版中用到了JQUERY来呈现效果。

  • 相关阅读:
    "Coding Interview Guide" -- 删除无序单链表中值重复出现的节点
    "Coding Interview Guide" -- 设计一个有getMin功能的栈
    "Coding Interview Guide" -- 仅用递归函数和栈操作逆序一个栈
    "Coding Interview Guide" -- 猫狗队列
    "Coding Interview Guide" -- 阶乘
    "Coding Interview Guide" -- 不用额外变量交换两个整数的值
    IDEA问题
    JAVA
    Log4j
    MAVEN教程
  • 原文地址:https://www.cnblogs.com/poplau/p/1643725.html
Copyright © 2020-2023  润新知