JP2016014921A - 情報処理装置、情報処理方法、およびプログラム - Google Patents
情報処理装置、情報処理方法、およびプログラム Download PDFInfo
- Publication number
- JP2016014921A JP2016014921A JP2014135180A JP2014135180A JP2016014921A JP 2016014921 A JP2016014921 A JP 2016014921A JP 2014135180 A JP2014135180 A JP 2014135180A JP 2014135180 A JP2014135180 A JP 2014135180A JP 2016014921 A JP2016014921 A JP 2016014921A
- Authority
- JP
- Japan
- Prior art keywords
- layer
- image
- rendering
- information
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1292—Mobile client, e.g. wireless printing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1208—Improving or facilitating administration, e.g. print management resulting in improved quality of the output result, e.g. print layout, colours, workflows, print preview
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1244—Job translation or job parsing, e.g. page banding
- G06F3/1247—Job translation or job parsing, e.g. page banding by conversion to printer ready format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1253—Configuration of print job parameters, e.g. using UI at the client
- G06F3/1256—User feedback, e.g. print preview, test print, proofing, pre-flight checks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Processing Or Creating Images (AREA)
- Stored Programmes (AREA)
Abstract
Description
<script>
var canvas = Canvasの作成
canvas.width = Canvasの横幅
canvas.height = Canvasの縦幅
var ctx = canvasにコンテンツを描画するためのコンテキストオブジェクトを取得
var img = PictureImage; //写真画像
ctx.drawImage(img, 〜); //img以降の引数で、画像のサイズや位置を指定
img = DateImage;//日付画像
ctx.drawImage(img, 〜); //日付画像を同じcanvasに重畳
img = StampImage;//スタンプ画像
ctx.drawImage(img, 〜); //スタンプ画像を同じcanvasに重畳
</script>
上記の印刷コンテンツを印刷するためには、プリンタの印刷エンジンが要求する画像データ(ビットマップデータ)へ変換する必要がある。この処理はレンダリング処理と呼ばれる。レンダリング処理では、上記アプリケーションのUI上で作成された、印刷コンテンツの表示領域からビットマップデータを取得する。
以下、携帯型情報端末上で、ウェブアプリケーションの1つである写真印刷アプリケーションを動作させたときの動作について説明する。写真印刷アプリケーションでは、ユーザが選択した画像に対して様々な画像処理(例えば、輝度補正し、スタンプ画像を追加)を適用した後に、印刷対象のコンテンツを印刷する。なお、本実施形態においては、写真印刷アプリケーションは、後述するハイブリッド型アプリケーションとして提供されている。
図1は、情報処理装置、特に、携帯型情報端末100のハードウェア構成の一例を示すブロック図である。同図において、CPU(中央演算装置)101は、各実施形態において説明する動作を、プログラムをROM102からRAM103に読み出して実行することにより実現する。ROM102は、CPU100により実行されるプログラム等を記憶するコンピュータ読取可能な記憶媒体である。RAM103は、例えば、CPU100によるプログラムの実行時に、各種データを一時的に記憶するためのワーキングメモリとして用いられる。2次記憶装置104は、例えばハードディスクやフラッシュメモリであり、例えば、画像ファイルや画像データ、画像解析などの処理結果を保持するデータベースなどを記憶する。タッチセンサ105は、タッチパネル上でのユーザの接触動作を検知するためのセンサである。ディスプレイ106は、写真印刷アプリケーション上の印刷設定画面等のユーザインタフェース画面や、画像処理結果などを表示する。ディスプレイ106は、タッチセンサ105を含んでも良い。
図2は、写真印刷アプリケーション(以下、アプリケーション)を実行するための、携帯型情報端末100上でのソフトウェア構成の一例を示す図である。図2に示すソフトウェアの各ブロックは、CPU101により実現される。本実施形態においては、携帯型情報端末100のソフトウェアは、スクリプト層201、ネイティブ層202、OS層203の3つの階層構造を有する。アプリケーションの機能は、図2に示す各層の連携により実現される。スクリプト層201は、HTML5、CSS(Cascading Style Sheets)3、Javascriptといったウェブ標準言語により、テキストデータで各種命令(スクリプト命令セット)が記述されている。各種命令とは、例えば、コンテンツの描画や画像の表示、動画の再生等の命令である。また、スクリプト層201は、それらのテキストデータを保持している。記述されたスクリプトは、アプリケーション実行環境上に存在するプロセッサ(CPU101)によりテキスト命令群が翻訳されて実行される。翻訳は、実行の度に命令文を一行ずつ動的に翻訳する形態や、アプリケーションを起動したときに翻訳する形態、アプリケーションを携帯型情報端末100にインストールしたときに翻訳する形態などで行われる。以下、スクリプト層201で処理することやスクリプト層201での内容を単にスクリプトとも呼ぶ。スクリプトの命令をデバイス(携帯型情報端末100)内で翻訳する際には、例えば、後述するネイティブ層202やOS層203のインタプリタの機能が使用される。なお、本実施形態においては、アプリケーションのUIの大部分がスクリプトで記述される。
スクリプト層201の画像取得部204は、ネイティブ層202に対して画像データの取得を依頼する。取得依頼方法は複数可能であり、例えば、ファイルの存在場所そのものを指定する絶対パス指定方法や、ダイアログ表示を促す方法などがある。ネイティブ層202の画像読込部205は、画像取得部204からの取得依頼に基づき、画像データを保持している領域であるネイティブ層202の画像群206から画像データを取得する。画像群206からの画像データの取得方法は、画像取得部204の依頼方法によって異なる。画像読込部205は、例えば、ファイルの絶対パスに基づき直接に画像データを取得したり、ダイアログ表示での選択に基づき画像データを取得する。
ネイティブ層202のデータ保持部209は、画像読込部205により読み込まれた画像データや、画像処理部210により画像処理が実行された画像データを保持する。ここで、保持される画像データはRGB展開されている。従って、画像読込部205により読み込まれて保持された画像データに対して、直ちに画像処理が実行可能である。ネイティブ層202のデータ保存部216は、必要に応じて、データ保持部209に保持されている画像データを画像群206に格納する。
スクリプト層201のレンダリング部219は、出力(表示/印刷)対象の画像のレンダリングについてのスクリプトを作成するためのブロックであり、コンテンツ描画部211、コンテンツ操作部212、画像処理制御部213を含む。本実施形態では、レンダリング部219でスクリプト作成途中の画像はディスプレイ106には表示されない。コンテンツ描画部211は、印刷対象のコンテンツを、ウェブ標準言語で記述する。スクリプト層201のコンテンツ操作部212は、画像の操作をスクリプトに反映する。画像の操作とは、例えば、画像の拡大、移動、回転である。コンテンツ描画部211による記述には、コンテンツ操作部212で操作された内容も反映される。ここで記述されたコンテンツのスクリプトは、後述するOS層203のインタプリタ218で解釈され、ディスプレイ106に表示される。画像処理制御部213は、画像処理に用いる補正パラメータ(例えば、輝度の補正値)と、補正対象となる画像を決定する。それらのデータは、必要に応じてスクリプト層201のデータ変換部208で、ネイティブ層202で利用可能なデータ形式に変換されてネイティブ層202に渡される。
スクリプト層201のプリンタ制御部214は、レンダリング開始依頼、プリンタ検知の依頼、プリンタ設定画面の表示、プリント情報の生成及び送信を制御する。ここでのレンダリングとは、印刷に必要なビットマップデータを作成することをいう。プリンタ設定画面では、用紙のサイズ、用紙の種類、カラー/モノクロ印刷などの設定が可能である。ここで設定された項目に基づいて、ネイティブ層202のプリンタデータ生成部215は、プリント情報を生成する。
図3は、本実施形態における写真印刷処理の全体の手順を示すフローチャートである。図3の処理は、例えば、CPU101がROM102からプログラムをRAM103に読み出して実行することにより実現される。図10は、本実施形態におけるスクリプトで記述された写真印刷アプリケーション画面の一例を示す図である。
上述のように、ユーザによる写真画像選択ボタン1001の押下を検出することにより、S301の処理が開始する。図4は、S301の写真画像選択の処理を示すフローチャートである。図4のS401、S402、S409〜S411は、スクリプト層201により実行される処理であり、S403〜S408は、ネイティブ層202により実行される処理である。他のフローチャートにおいても同様に示す。
var CorrectionParam = function(){
this.brightness = 10;
}
上記の補正パラメータは、CorrectionParamオブジェクトの中に、明るさ補正用にbrightnessという変数名と、brightnessには10という値が格納されているということを表している。説明上、補正パラメータは、明るさ補正用のみとして示しているが、その他の補正処理用のパラメータを追加することにより、画像処理の種類を増やすことができる。
var base64Data = ネイティブからのBASE64データ
var canvas = document.createElement("canvas");//画像の描画領域確保
canvas.setAttribute("width", 100);//描画領域の大きさ設定
canvas.setAttribute("height", 100);
canvas.setAttribute(“id”, “ImageID”);//canvasにIDをつける
var context = canvas.getContext("2d");//描画領域に描画するAPIを持つオブジェクトの生成
var img = new Image();//Imageオブジェクトの生成
img.src = base64Data;//画像のURIを受け取ったBASE64データとする
img.onload = function(){//画像のロードが終わってから処理を開始する
context.drawImage(img, 0, 0, img.width, img.height, 0, 0, canvas.width, canvas.height);//contextオブジェクトのメソッドを用いて画像を描画領域に描画
document.getElementById("div").appendChild(canvas);}
本実施形態では、Canvasが何層にもなるレイヤ構造を用いている。それらのCanvasは、描画/移動/拡大などの操作が特定されると、divで指定される描画領域1006に対して順次追加されていく。通常、Canvasは1枚の画像として扱われるので、Canvasに写真画像を描画した後にスタンプ画像などを追加すると、スタンプ画像と合わせて1枚の画像とされる。それに対して、本実施形態では、レイヤ構造を用いてCanvasを重ねて表示するので、ユーザに対して1枚の画像のように表示するが、実際の描画物はそれぞれ独立したものとなっている。例えば、HTMLのDOM(Document Object Model)のように、divの領域内にCanvasオブジェクトが複数存在する形態である。以下に一例を示す。
<div width = 100 height = 100>
<canvas id=”ImageID” width=100 height=100 style="position:absolute;left:0px; top:0px;"></canvas>
<canvas id=”Stamp” width=10 height=10 style="position:absolute;left:10px; top:10px;"></canvas>
…
</div>
1つ目のCanvasは、縦幅100、横幅100のdiv領域に対して、縦幅100、横幅100で追加されている。つまり、表示領域全体に対してCanvasが重なっているということであり、写真画像は全体表示される。2つ目のCanvasは、縦幅10、横幅10の大きさ、div左上の頂点を基準とした時の(10,10)の座標に追加されている。それぞれのCanvasは独立しており、また、それぞれに一意なIDが指定されている。スクリプトによる操作や、特定のCanvasの情報を取得する際には、対応するIDが用いられる。例えば、2つ目のCanvasの縦幅は、以下の操作で取得することができる。
var width = document.getElementById(“Stamp”).width;
[画像処理]
ユーザによるスライドバー1002の設定を検出することにより、図3のS302の処理が開始する。図5は、S302の画像処理を示すフローチャートである。
ユーザによるスタンプ追加ボタン1003の押下を検出し、ハートスタンプ画像1008の選択を検出することにより、S303の処理が開始する。図6は、S303のスタンプ画像追加の処理を示すフローチャートである。
var ObjectParam = function(){
this.posX = 10;
this.posY = 10;
this.width = 100;
this.height = 100;
this.ImageData = BASE64Data;
}
このオブジェクトパラメータは、ObjectParamオブジェクトの中に、基準点からのx座標を示すposX変数名が含まれ、posXには10という値が格納されているということを表している。ここで、基準点とは、描画領域1006の左上の座標1010である。同様に、posYは、描画領域1006の左上を基準点としたときのy座標、widthはスタンプ画像の描画領域1009の横幅、heightは描画領域1009の縦幅を表している。また、BASE64Dataは、ネイティブ層202から受け取った画像データである。
ユーザによるプリントボタン1005の押下を検出することにより、S304の処理が開始する。図7は、S304のプリンタ設定の処理を示すフローチャートである。
----------------------------------------------
01: <?xml version="1.0" encoding="utf-8" ?>
02: <cmd xmlns:trans="http://www.xxxx/yyyyy/">
03: <contents>
04: <operation>GetPrinterInfo</operation>
05: </contents>
06: </cmd>
----------------------------------------------
上記各行の左側に書かれている「01:」などの数値は説明を行うために付加した行番号であり、本来のXML形式のテキストには記述されない。
----------------------------------------------
01: <?xml version="1.0" encoding="utf-8" ?>
02: <cmd xmlns:trans="http://www.xxxx/yyyyy/">
03: <contents>
04: <device id=”Printer001” />
05: <mode = 1>
06: <media>GlossyPaper</media>
07: <size>A4</size>
08: <quality>1</quality>
09: <border>no</border>
10: </mode>
11: <mode = 2>
〜中略〜
</mode>
<mode = 3>
〜中略〜
</mode>
〜中略〜
</contents>
</cmd>
----------------------------------------------
1行目はヘッダであり、XML形式で記述していることを表している。
------------------------------------------------
<!DOCTYPE html>
<head>
<title>印刷設定 </title>
<script>
<!-- 用紙サイズ -->
var PaperSizeNum = GetPaperSizeNum();
var p = document.getElementById("PaperList");
var i;
for(i=0; i<PaperSizeNum; i++){
p.options[i] = new Option(GetPaperSize(i), GetPaperSize(i));
}
<!-- 用紙種類-->
var MediaTypeNum = GetMediaTypeNum();
var m = document.getElementById("MediaList");
var j;
for(j=0; j<MediaTypeNum; j++){
m.options[i] = new Option(GetMediaType(j),GetMediaType(j));
}
<!-- 印刷品位 -->
var QualityNum = GetQualityNum();
var q = document.getElementById("QualityList");
var k
for(k=0; k< QualityNum; k++){
q.options[i] = new Option(GetQuality(k), GetQuality(k));
}
<!-- 縁あり/なし-->
var BorderNum = GetBorderNum();
var b = document.getElementById("BorderList");
var l;
for(l=0; l<BorderNum; l++){
b.options[i] = new Option(GetBorder(l),GetBorder(l));
}
<!-- 印刷関数-->
function printer() {
SetPrint(document.getElementById("PaperList").value,
document.getElementById("MediaList").value,
document.getElementById("QualityList").value,
document.getElementById("BorderList ").value);
}
</script>
</head>
<!-- 表示部 -->
<body>
用紙サイズ:<select id="PaperList"></select><br />
用紙種類: <select id="MediaList"></select><br />
印刷品位: <select id="QualityList"></select><br />
縁なし: <select id="BorderList"></select><br />
<br />
<button id="btn1" onclick="printer()">印刷設定完了</button>
</body>
</html>
------------------------------------------------
上記のGetPaperSizeNum()、GetMediaTypeNum()、GetQualityNum()、GetBorderNum()はネイティブ関数であり、それぞれの項目がいくつあるかを取得する機能を備える。例えば、プリンタが対応している用紙サイズがA4、A5、B5、L判の4種類の場合、GetPaperSizeNum()は4を返す。
ユーザによる印刷設定画面1101の設定完了ボタン1102の押下を検出することにより、S305の処理が開始する。図8は、S305のレンダリング処理を示すフローチャートである。
scaleY=出力画像の縦サイズ/描画領域1006の縦サイズ ・・・(2)
これは、描画領域1006を拡大する際にはスタンプ画像も拡大しないと、ユーザに対する表示画像と印刷画像とで、スタンプ画像の相対的なサイズや描画位置が異なってしまうからである。ここで求めた拡大倍率によるスタンプ画像の拡大は、例えばCanvasであればContextオブジェクトのscaleメソッドを用いて行われる。
posY’=posY×scaleY ・・・(4)
再配置後の位置へのコンテンツの平行移動は、例えばCanvasであればContextオブジェクトのtranslateメソッドを用いて行われる。
S818の処理が終了すると、S306の処理が開始する。図9は、S306のプリント処理を示すフローチャートである。
本実施形態では、追加したスタンプ画像をスクリプトで操作する方法について記述する。以下、第1の実施形態と異なる点について説明する。
図12は、本実施形態における写真印刷処理の全体の手順を示すフローチャートである。本実施形態では、S1203のスタンプ画像追加の処理後に、S1204のスタンプ画像の特定と、S1205のスタンプ画像の操作が行わる点で、図3と異なる。図12のS1201〜S1203は図3のS301〜S303に対応し、図12のS1206〜S1208は図3のS304〜S306に対応する。
S1203でスタンプ画像が追加された後、ユーザによるディスプレイ106上をタップ操作を検出することにより、S1204のスタンプ画像の特定処理が開始する。ここで、タップ操作とは、ユーザがディスプレイ106上を指で押すタッチ操作のことをいう。これは、PCで言うところの「クリック」に相当する。
S1302でスタンプ画像が操作受付状態になると、S1205のスタンプ画像の操作が開始する。図14は、S1205のスタンプ画像の操作処理を示すフローチャートである。
update(x, y){ //座標位置を更新する
//x:描画領域の基準点(図10、1010)からのx座標
//y:描画領域の基準点からのy座標
var stamp = 操作受付状態のスタンプ(スタンプであるCanvasの実体)
var id = stamp.getAttribute(“id”); //スタンプのidを取得
var ObjectParam = ObjectParamArray[id];
//idから、操作受付状態のスタンプのオブジェクトパラメータを取得
ObjectParam.posX = x; //スタンプのObjectParamを更新
ObjectParam.posY = y;
}
reflection(stamp){ //更新した座標位置によってスタンプを操作
//stampは操作受付状態のスタンプ(Canvasの実体)
var id = stamp.getAttribute(“id”); //スタンプのidを取得
var ObjectParam = ObjectParamArray[id];
//idから、操作受付状態スタンプのオブジェクトパラメータを取得
stamp.style.position = “absolute”;
stamp.style.left = ObjectParam.posX + “px”; //スタンプをpoxXへ移動
stamp.style.top = ObjectParam.posY + “px”; //スタンプをpoxYへ移動
}
まず、update関数で、操作受付状態のスタンプ画像に関するObjectParamを特定し、位置に関する情報が更新される。上記では、ObjectParamArrayに、それぞれのスタンプ画像(Canvas)に対するObjectParamが配列として存在しており、スタンプ画像のIDを添え字とすることで、一意なObjectParamを特定している。スタンプ画像からObjectParamを特定する方法は他に、スタンプ画像に対応するCanvasとObjectParamとを両方含むオブジェクトを作成しておく方法や、ObjectParamにCanvasの実体を包含するなどの方法でも良い。
上記の各実施形態では、携帯型情報端末100上で、ハイブリッド型アプリケーションを動作させる構成について説明した。しかしながら、本実施形態はこれに限定されるものではない。例えば、ハイブリッド型アプリケーションが動作する環境は、スマートフォンやタブレットPCを始めとする携帯型情報端末100の他に、PCやサーバ、ゲーム機などであっても良い。
Claims (17)
- プロセッサと、
アプリケーションの実行の際に前記プロセッサで実行可能なように翻訳され当該プロセッサにより実行されるスクリプト命令セットで構成された第1の層と、前記プロセッサで実行可能なように予め翻訳されている命令セットで構成された第2の層と、を有する階層構造を成し、前記第1の層と前記第2の層との連携により前記アプリケーションを実行するためのプログラムを記憶する記憶手段と、
前記アプリケーションの機能により表示された画像を印刷する場合、前記第1の層において、当該画像のオブジェクトの描画位置及びサイズを含む描画情報から、当該オブジェクトをレンダリングするためのレンダリング情報を決定する決定手段と、
前記第2の層において、前記決定手段により決定された前記レンダリング情報に従って、前記オブジェクトをレンダリングするレンダリング手段と、
を備えることを特徴とする情報処理装置。 - 前記第1の層において、前記オブジェクトの描画情報を変更する変更手段をさらに備え、
前記決定手段は、前記変更手段により変更された描画情報から、前記レンダリング情報を決定することを特徴とする請求項1に記載の情報処理装置。 - 前記画像のオブジェクトが複数のオブジェクトを含む場合、
前記決定手段は、前記複数のオブジェクトそれぞれについて、前記レンダリング情報を決定することを特徴とする請求項1又は2に記載の情報処理装置。 - 前記レンダリング手段は、前記複数のオブジェクトそれぞれについて、前記レンダリングを行うことを特徴とする請求項3に記載の情報処理装置。
- 前記レンダリング手段は、印刷解像度に基づいてビットマップデータを生成することを特徴とする請求項3又は4に記載の情報処理装置。
- 前記レンダリング手段は、さらに、前記複数のオブジェクトそれぞれについて生成されたビットマップデータを合成することを特徴とする請求項5に記載の情報処理装置。
- 前記第1の層は、HTML5、JavaScriptの少なくともいずれかにより記述されていることを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。
- 前記画像のオブジェクトは、前記第1の層がJavaScriptで記述されている場合、Canvasを用いて描画されることを特徴とする請求項7に記載の情報処理装置。
- プロセッサと、
アプリケーションの実行の際に前記プロセッサで実行可能なように翻訳され当該プロセッサにより実行されるスクリプト命令セットで構成された第1の層と、前記プロセッサで実行可能なように予め翻訳されている命令セットで構成された第2の層と、を有する階層構造を成し、前記第1の層と前記第2の層との連携により前記アプリケーションを実行するためのプログラムを記憶する記憶手段とを有する情報処理装置において実行される情報処理方法であって、
前記アプリケーションの機能により表示された画像を印刷する場合、前記第1の層において、当該画像のオブジェクトの描画位置及びサイズを含む描画情報から、当該オブジェクトをレンダリングするためのレンダリング情報を決定する決定工程と、
前記第2の層において、前記決定工程において決定された前記レンダリング情報に従って、前記オブジェクトをレンダリングするレンダリング工程と、
を有することを特徴とする情報処理方法。 - アプリケーションの実行の際にプロセッサが実行可能なように翻訳され当該プロセッサにより実行されるスクリプト命令セットで構成された第1の層と、前記プロセッサで実行可能なように予め翻訳されている命令セットで構成された第2の層と、を有する階層構造を成し、前記第1の層と前記第2の層との連携により前記アプリケーションを実行するためのプログラムであって、
前記アプリケーションの機能により表示された画像を印刷する場合、前記第1の層において、当該画像のオブジェクトの描画位置及びサイズを含む描画情報から、当該オブジェクトをレンダリングするためのレンダリング情報を決定し、
前記第2の層において、当該決定された前記レンダリング情報に従って、前記オブジェクトをレンダリングする、
ようにコンピュータを機能させるためのプログラム。 - 前記第1の層において、前記オブジェクトの描画情報を変更するようにコンピュータをさらに機能させ、
当該変更された描画情報から、前記レンダリング情報を決定することを特徴とする請求項10に記載のプログラム。 - 前記画像のオブジェクトが複数のオブジェクトを含む場合、
前記複数のオブジェクトそれぞれについて、前記レンダリング情報を決定することを特徴とする請求項10又は11に記載のプログラム。 - 前記複数のオブジェクトそれぞれについて、前記レンダリングが行われることを特徴とする請求項12に記載のプログラム。
- 前記レンダリングでは、印刷解像度に基づいてビットマップデータが生成されることを特徴とする請求項12又は13に記載のプログラム。
- 前記レンダリングでは、さらに、前記複数のオブジェクトそれぞれについて生成されたビットマップデータが合成されることを特徴とする請求項14に記載のプログラム。
- 前記第1の層は、HTML5、JavaScriptの少なくともいずれかにより記述されていることを特徴とする請求項10乃至15のいずれか1項に記載のプログラム。
- 前記画像のオブジェクトは、前記第1の層がJavaScriptで記述されている場合、Canvasを用いて描画されることを特徴とする請求項16に記載のプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014135180A JP6360370B2 (ja) | 2014-06-30 | 2014-06-30 | 情報処理装置、情報処理方法、およびプログラム |
US14/739,196 US9575702B2 (en) | 2014-06-30 | 2015-06-15 | Information processing apparatus, information processing method, and storage medium storing program having a layered structure |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014135180A JP6360370B2 (ja) | 2014-06-30 | 2014-06-30 | 情報処理装置、情報処理方法、およびプログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2016014921A true JP2016014921A (ja) | 2016-01-28 |
JP2016014921A5 JP2016014921A5 (ja) | 2017-08-17 |
JP6360370B2 JP6360370B2 (ja) | 2018-07-18 |
Family
ID=54930903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014135180A Active JP6360370B2 (ja) | 2014-06-30 | 2014-06-30 | 情報処理装置、情報処理方法、およびプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US9575702B2 (ja) |
JP (1) | JP6360370B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6424745B2 (ja) * | 2015-06-09 | 2018-11-21 | 株式会社リコー | 画像形成装置、画像形成方法およびプログラム |
JP6799396B2 (ja) * | 2016-07-01 | 2020-12-16 | キヤノン株式会社 | 情報処理装置、情報処理方法およびプログラム |
US11048975B2 (en) * | 2019-07-17 | 2021-06-29 | Walmart Apollo, Llc | Systems and methods for identifying items in a digital image |
CN112954030A (zh) * | 2021-01-30 | 2021-06-11 | 北京奇保信安科技有限公司 | 一种Web端图片压缩方法、装置及电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH117365A (ja) * | 1997-04-24 | 1999-01-12 | Canon Inc | 画像保持装置、画像制御装置、出力制御装置、情報処理装置、及びそれらからなるシステム及び方法及びコンピュータ読み取り可能なプログラムが格納された記憶媒体 |
JP2007058783A (ja) * | 2005-08-26 | 2007-03-08 | Canon Inc | 情報処理装置および情報処理方法 |
JP2007281595A (ja) * | 2006-04-03 | 2007-10-25 | Seiko Epson Corp | 記録装置、記録制御プログラム |
JP2010218457A (ja) * | 2009-03-18 | 2010-09-30 | Ricoh Co Ltd | 画像形成装置、画像形成方法およびプログラム |
JP2012168637A (ja) * | 2011-02-10 | 2012-09-06 | Seiko Epson Corp | ネットワークシステムおよびネットワークシステムの印刷制御方法 |
US8595752B1 (en) * | 2011-06-13 | 2013-11-26 | Google Inc. | Hybrid application message passing |
WO2014027678A1 (en) * | 2012-08-14 | 2014-02-20 | Seiko Epson Corporation | Epos printing |
JP2014092996A (ja) * | 2012-11-05 | 2014-05-19 | Canon Inc | 情報処理装置、その制御方法、及びプログラム |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3619143B2 (ja) | 1999-11-18 | 2005-02-09 | キヤノン株式会社 | 画像処理装置およびその方法 |
US8432404B2 (en) * | 2008-12-15 | 2013-04-30 | Leonovus Usa Inc. | Media action script acceleration method |
JP5761923B2 (ja) | 2010-04-28 | 2015-08-12 | キヤノン株式会社 | 印刷システム、情報処理装置及びその方法 |
JP5981789B2 (ja) | 2012-07-09 | 2016-08-31 | キヤノン株式会社 | 画像処理装置、画像処理方法およびプログラム |
JP6012309B2 (ja) | 2012-07-09 | 2016-10-25 | キヤノン株式会社 | 情報処理装置、情報処理方法、およびプログラム |
JP6071289B2 (ja) | 2012-07-09 | 2017-02-01 | キヤノン株式会社 | 画像処理装置、画像処理方法、およびプログラム |
-
2014
- 2014-06-30 JP JP2014135180A patent/JP6360370B2/ja active Active
-
2015
- 2015-06-15 US US14/739,196 patent/US9575702B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH117365A (ja) * | 1997-04-24 | 1999-01-12 | Canon Inc | 画像保持装置、画像制御装置、出力制御装置、情報処理装置、及びそれらからなるシステム及び方法及びコンピュータ読み取り可能なプログラムが格納された記憶媒体 |
JP2007058783A (ja) * | 2005-08-26 | 2007-03-08 | Canon Inc | 情報処理装置および情報処理方法 |
JP2007281595A (ja) * | 2006-04-03 | 2007-10-25 | Seiko Epson Corp | 記録装置、記録制御プログラム |
JP2010218457A (ja) * | 2009-03-18 | 2010-09-30 | Ricoh Co Ltd | 画像形成装置、画像形成方法およびプログラム |
JP2012168637A (ja) * | 2011-02-10 | 2012-09-06 | Seiko Epson Corp | ネットワークシステムおよびネットワークシステムの印刷制御方法 |
US8595752B1 (en) * | 2011-06-13 | 2013-11-26 | Google Inc. | Hybrid application message passing |
WO2014027678A1 (en) * | 2012-08-14 | 2014-02-20 | Seiko Epson Corporation | Epos printing |
JP2015531087A (ja) * | 2012-08-14 | 2015-10-29 | セイコーエプソン株式会社 | Eposプリント |
JP2014092996A (ja) * | 2012-11-05 | 2014-05-19 | Canon Inc | 情報処理装置、その制御方法、及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
US20150379380A1 (en) | 2015-12-31 |
JP6360370B2 (ja) | 2018-07-18 |
US9575702B2 (en) | 2017-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10296267B2 (en) | Information processing apparatus, information processing method, and storage medium | |
JP5901704B2 (ja) | 情報処理装置、情報処理方法、プログラム | |
JP6363888B2 (ja) | 情報処理装置、およびプログラム | |
US9471284B2 (en) | Apparatus, method, and non-transitory computer-readable storage medium | |
US10620892B2 (en) | Information processing apparatus that displays a print setting screen based on information of a printing apparatus in a format interpretable in a first program layer and processing method thereof | |
JP6478487B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
US10075620B2 (en) | Information processing apparatus, control method for information processing apparatus, and non-transitory computer-readable storage medium | |
JP6381319B2 (ja) | 情報処理装置、処理方法、及びプログラム | |
JP6138088B2 (ja) | 情報処理装置、制御方法、及びソフトウェアプログラム | |
JP6360370B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
US10228890B2 (en) | Apparatus, method, and non-transitory computer-readable storage medium | |
JP2017182488A (ja) | 情報処理装置およびその制御方法、並びにプログラム | |
JP6757368B2 (ja) | 情報処理装置、処理方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170630 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170630 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180219 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180309 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180502 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180525 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180622 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6360370 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |