User Tools

Site Tools


js

JavaScript Programing for DAM course

在本门课程中,我们主要采用JavaScript作为教学语言来进行相关的数字媒体资源内容实践。因为我们主要采用的是B/S架构,因而具体可分为服务器开发和浏览器开发两部分。

基本篇

JavaScript是一门非常不错的语言,它起源于在NetScape所推出的Mosaic浏览器中的动态脚本语言。虽然形式上它和Java的语言风格很接近,但其本质上是一种Lisp语言,非常适合做人工智能的^_^

JavaScript 与 Java 是两种完全不同的语言,无论在概念还是设计上。Java(由 Sun 发明)是更复杂的编程语言。ECMA-262 是 JavaScript 标准的官方名称。JavaScript 由 Brendan Eich 发明。它于 1995 年出现在 Netscape 中(该浏览器已停止更新),并于 1997 年被 ECMA(一个标准协会)采纳。

浏览器篇

待续

服务器篇

待续

高级篇

基本图像处理

JS目前发展得比较快,比较常见的图像处理库可用gm,大家简单的用以下命令安装:

  npm install gm

但是可能在做练习时碰到一个问题是如何直接操纵图像中的像素。有个偷懒的办法是用pngjs库,请安装:

  npm install pngjs

下面是参考例子:


  var fs = require('fs'),
  PNG = require('pngjs').PNG;
  fs.createReadStream('in.png')
      .pipe(new PNG({
          filterType: 4
      }))
      .on('parsed', function() {
      for (var y = 0; y < this.height; y++) {
          for (var x = 0; x < this.width; x++) {
              var idx = (this.width * y + x) << 2;
              // invert color
              this.data[idx] = 255 - this.data[idx];
              this.data[idx+1] = 255 - this.data[idx+1];
              this.data[idx+2] = 255 - this.data[idx+2];
              // and reduce opacity
              this.data[idx+3] = this.data[idx+3] >> 1;
          }
      }
      this.pack().pipe(fs.createWriteStream('out.png'));
  });
  

—-

高级图像处理

基本上只要是高级图像处理离不开OpenCV。幸运的是,开源社区提供了OpenCV的JavaScript包装。但同时不幸的是,这种包装不止一个,所以大家可能会有些迷惑。根据github网站上的活跃程度,我推荐使用node-opencv,请在系统中亲自安装:

  npm install opencv

node-opencv在Mac OS X和Linux中安装非常方便,不过windows中可能会遇到各种问题。因此建议在自己的机器上先安装VMWare或者VirtualBox等虚拟机软件,然后再在linux虚拟机中实验。另外,这年头山寨和李鬼的也很多,就不推荐使用opencv-node了, sigh ~~~

厚着脸皮待续了

结束语

还没到这里

js.txt · Last modified: 2023/08/19 20:20 (external edit)