将图像显示为 .tiff 或 .tif
Display an image as .tiff or .tif
不知道这个过程是怎么做到的,请教没达到,如果能帮上忙。
调查是怎么回事:
var reader = new FileReader();
reader.onload = function(event) {
var dataUri = event.target.result,
context = document.getElementById("mycanvas").getContext("2d"),
img = new Image();
// wait until the image has been fully processed
img.onload = function() {
context.drawImage(img, 100, 100);
};
img.src = 'url_imagen';
};
reader.onerror = function(event) {
console.error("File could not be read! Code " + event.target.error.code);
};
reader.readAsDataURL(file);
所有的贡献都实现了,但尝试一下,如果它有效。
点 运行 沙漠,分辨率为 jpg 的扑克图片出现以下错误:
TIFFReadDirectory:警告,遇到带有标记 347 (0x15b) 的未知字段。
tiff_min.js(第 103 行)
1.tiff: 未配置 JPEG 压缩支持。
tiff_min.js(第 103 行)
1.tiff: 抱歉,未配置请求的压缩方法。
tiff_min.js(第 103 行)
未捕获的异常:[object Object]
探测代码是这样的:
Tiff.initialize({TOTAL_MEMORY: 19777216 * 10});
var xhr = new XMLHttpRequest();
xhr.responseType = 'arraybuffer';
xhr.open('GET', url);
xhr.onload = function (e) {
var tiff = new Tiff({buffer: xhr.response,height:450});
var canvas = tiff.toCanvas();
//canvas.width = 700;
//canvas.height = 450;
div.html(canvas);
msn('Imagen cargada', "Imagen cargada con exito.");
};
xhr.send();
正如回答 here and here,这一切都归结为浏览器支持。
但是您可以将图像作为二进制数据获取并使用库显示它:
https://github.com/seikichi/tiff.js
通过显示 canvas 中的图像来显示 angular 中的 Tiff 文件。
从 https://github.com/seikichi/tiff.js 下载 'tiff.min.js' 并将文件添加到 'src' 文件夹。
更新 angular.json 文件
"scripts": ["src/tiff.min.js"]
下 "project"-> "architect" -> "build"->"options"->"scripts"
在组件的ts文件中添加如下代码:
declare var Tiff: any; # declared globally outside the class
# inside the component class
let xhr = new XMLHttpRequest();
xhr.responseType = 'arraybuffer';
xhr.open('GET', 'src_of_image_to_be_displayed');
xhr.onload = (e) => {
let tiff = new Tiff({buffer: xhr.response});
let canvas = tiff.toCanvas();
document.body.append(canvas); # append to an div element
}
xhr.send();
不知道这个过程是怎么做到的,请教没达到,如果能帮上忙。
调查是怎么回事:
var reader = new FileReader();
reader.onload = function(event) {
var dataUri = event.target.result,
context = document.getElementById("mycanvas").getContext("2d"),
img = new Image();
// wait until the image has been fully processed
img.onload = function() {
context.drawImage(img, 100, 100);
};
img.src = 'url_imagen';
};
reader.onerror = function(event) {
console.error("File could not be read! Code " + event.target.error.code);
};
reader.readAsDataURL(file);
所有的贡献都实现了,但尝试一下,如果它有效。
点 运行 沙漠,分辨率为 jpg 的扑克图片出现以下错误:
TIFFReadDirectory:警告,遇到带有标记 347 (0x15b) 的未知字段。 tiff_min.js(第 103 行) 1.tiff: 未配置 JPEG 压缩支持。 tiff_min.js(第 103 行) 1.tiff: 抱歉,未配置请求的压缩方法。 tiff_min.js(第 103 行) 未捕获的异常:[object Object]
探测代码是这样的:
Tiff.initialize({TOTAL_MEMORY: 19777216 * 10});
var xhr = new XMLHttpRequest();
xhr.responseType = 'arraybuffer';
xhr.open('GET', url);
xhr.onload = function (e) {
var tiff = new Tiff({buffer: xhr.response,height:450});
var canvas = tiff.toCanvas();
//canvas.width = 700;
//canvas.height = 450;
div.html(canvas);
msn('Imagen cargada', "Imagen cargada con exito.");
};
xhr.send();
正如回答 here and here,这一切都归结为浏览器支持。
但是您可以将图像作为二进制数据获取并使用库显示它:
https://github.com/seikichi/tiff.js
通过显示 canvas 中的图像来显示 angular 中的 Tiff 文件。
从 https://github.com/seikichi/tiff.js 下载 'tiff.min.js' 并将文件添加到 'src' 文件夹。
更新 angular.json 文件 "scripts": ["src/tiff.min.js"]
下 "project"-> "architect" -> "build"->"options"->"scripts"
在组件的ts文件中添加如下代码:
declare var Tiff: any; # declared globally outside the class
# inside the component class
let xhr = new XMLHttpRequest();
xhr.responseType = 'arraybuffer';
xhr.open('GET', 'src_of_image_to_be_displayed');
xhr.onload = (e) => {
let tiff = new Tiff({buffer: xhr.response});
let canvas = tiff.toCanvas();
document.body.append(canvas); # append to an div element
}
xhr.send();