JP6786342B2 - 情報処理装置、情報処理方法およびプログラム - Google Patents
情報処理装置、情報処理方法およびプログラム Download PDFInfo
- Publication number
- JP6786342B2 JP6786342B2 JP2016204253A JP2016204253A JP6786342B2 JP 6786342 B2 JP6786342 B2 JP 6786342B2 JP 2016204253 A JP2016204253 A JP 2016204253A JP 2016204253 A JP2016204253 A JP 2016204253A JP 6786342 B2 JP6786342 B2 JP 6786342B2
- Authority
- JP
- Japan
- Prior art keywords
- application
- image
- rendering
- data
- memory
- 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.)
- Active
Links
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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/00095—Systems or arrangements for the transmission of the picture signal
- H04N1/001—Systems or arrangements for the transmission of the picture signal specially adapted for transmission via digital wireline networks
-
- 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
- User Interface Of Digital Computer (AREA)
- Image Processing (AREA)
Description
(第1実施形態)
以下では、本発明の印刷用アプリケーションの一実施形態として携帯型情報端末上で動作する写真印刷アプリケーションについて、ユーザーが選択した画像に対して、種々の画像処理を施した後に、それによって得られる印刷用コンテンツを印刷するまでの手順について説明する。なお、本実施形態では該写真印刷アプリケーションとして、Web技術とネイティブ技術を融合した、いわゆるハイブリッドアプリケーションの形態を説明する。
図1は、主に、本発明の情報処理装置の一実施形態である、スマートフォンや携帯電話等の携帯型情報端末の構成を示すブロック図である。同図において、CPU(中央演算装置/プロセッサ)100は、以下で説明する各種処理をそれぞれの処理に対応するプログラムに従って実行する。なお、図示の例ではCPU100は1つが示されているが、複数のCPUあるいはCPUコアによって構成されていてもよい。この場合、マルチプロセッサの構成とすることができる。ROM101は、CPU100によって実行されるプログラムを記憶している。RAM102は、CPU100によるプログラム実行の際に、各種情報を一時的に記憶するためのメモリである。
図2は、図1に示した情報処理装置115で動作するソフトウェアの構成を示すブロック図である。情報処理装置115は、スクリプト層217、ネイティブ層218、およびOS層219それぞれに対応するプログラムを実行する。これら層の処理は、CPU100がROM101あるいは2次記憶装置103に記憶されている対応するプログラムを読み出し実行することにより実現される。
図3は、本実施形態に係る情報処理装置115における、ユーザー操作を含む処理の一例を示すフローチャートであり、写真画像をプリンタ112によって印刷するための処理を示している。図3に示す各ステップの処理は、情報処理装置115のCPU100が、ROM101あるいは2次記憶装置103に記憶されているプログラムを実行することにより実現される。また、図3に示す各ステップは、本実施形態のUIの1つである、アプリケーション画面に対するユーザーの操作に従って遷移する。
var stamp = 対象のスタンプ;
stamp.addEventListener(“touchstart”, function(e){
//スタンプがタッチされた時に行いたい処理をここに記述
}, false);
ステップS33の詳細は図6にて後述する。
次に、図3を参照して以上説明した、本実施形態の情報処理装置において実行される写真画像選択とそれに伴う処理の詳細を図4〜図8を参照して説明する。
var base64Data = ネイティブ層からのBASE64データ;
var ID = ネイティブ層で生成された一意なID;
//画像の反映させたい領域を指定
var svg = “http://www.w3.org/2000/svg”;
var xlink = “http://www.w3.org/1999/xlink”;
var img = document.createElementNS(svg, "image");
img.setAttributeNS(xlink, “href”, base64Data);
img.setAttribute(“id”, ID);
img.setAttribute(“width”, 200);
img.setAttribute(“height”, 200);
var target = document.getElementById(“追加先のSVGのID”);
target.appendChild(img);
上記の例では、描画領域906に対しSVGが動的に追加する方法を示している。後述するスタンプに関しても同様の操作で描画領域906に追加することができる。
図5は、図3のステップS32の画像処理の詳細を示すフローチャートである。なお、ステップS501〜S503、S510、およびS512は、CPU100がスクリプト層217のプログラムを用いて実行する処理であり、ステップS504〜S507、S509は、CPU100がネイティブ層218のプログラムを用いて実行する処理である。ここでは、ユーザーが操作したスライドバー902の設定値に基づき、画像の明るさを変更する画像処理を実行する例について説明する。
var json = {
ID : 画像処理対象の画像ID,
Brightness : 20
};
ステップS504では、CPU100は、スクリプト層217から取得したIDを基に、図4のステップS405で展開されたRGB画像を特定する。次に、ステップS505で、CPU100は、取得した補正パラメータを基に、RGB画像に対して明るさ補正を実行する。本実施形態では、スライダーバー902の操作によって設定された、例えば「20」の値を基に、総ての画素のRGBの値に20を加算する処理を行う。画像処理については、補正パラメータに他の画像処理情報を追加することで、実行する画像処理を増やすことも可能である。例えば、公知のモノクロ変換、公知のセピア色変換、「ImageFix」、「RedeyeFix」、「SmartSkin」などを追加することができる。ここで、「ImageFix」とは、写真画像を、人物顔検出やシーン解析部を用いて自動で解析し、適切な明るさ・ホワイトバランス調整を行う機能(顔検出機能)である)。また、「RedeyeFix」とは、画像中から自動で赤目画像を検出して補正する機能(赤目検出機能)である。また、「SmartSkin」とは、写真画像から人物の顔を検出して、該顔の肌領域を好適に加工する機能である。なお、画像処理機能の種類は、これらに限定されるものではなく、用途や目的に応じて、種々の画像処理を用いることができる。さらに、画像処理は、OS層219が提供する機能を利用してもよく、その場合であっても処理構成はこの実施形態と同じである。
図6は、図3のステップS33のスタンプ追加の詳細を示すフローチャートである。以下の説明では、ユーザー操作によって、図9に示すアプリケーション画面900のスタンプ追加ボタン903が押下されてスタンプ一覧が表示された後、ハートスタンプ908が選択された例について説明する。なお、スタンプ追加は、CPU100がスクリプト層217のプログラムを用いて実行する処理である。また、利用するスタンプはアプリケーションが予めリソースファイルとして保持しているものである。
図7は、図3のステップS34のプリンタ設定の詳細を示すフローチャートである。なお、ステップS701、S709〜S711は、CPU100がスクリプト層217のプログラムを用いて実行する処理である。また、ステップS702、S704、S705、S707、S708、およびS712は、CPU100がネイティブ層218のプログラムを用いて実行する処理である。さらに、ステップS703およびS706は、プリンタ112が実行する処理である。
01: <?xml version="1.0" encoding="utf-8" ?>
02: <cmd xmlns:trans="http://www.xxxx/yyyyy/">
03: <contents>
04: <operation>GetInformation</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: <memory receive= 7680000 />
06: <mode = 1>
07: <media>GlossyPaper</media>
08: <size>A4</size>
09: <quality>1</quality>
10: <border>no</border>
11: <dpi x=1200 y=1200 />
12: </mode>
13: <mode = 2>
〜中略〜
</mode>
<mode = 3>
〜中略〜
</mode>
〜中略〜
</contents>
</cmd>
上記情報において、1行目はヘッダであり、XML形式で記述していることを表している。2行目のcmdはコマンドの開始を意味する。xmlnsで名前空間を指定し、コマンドの解釈の定義を指定している。尚、最下行の</cmd>でコマンドの終了を示している。3行目は以後に内容を記載する宣言であり、下の</contents>までその内容は継続する。4行目でデバイスIDを示している。ここでは、プリンタ112の機種名が「Printer001」であることを表している。5行目についてはこの実施形態では用いない。後の実施形態で詳細に述べる。6行目以降はプリンタ112が有する各モードについての記述である。<mode>から</mode>までで、1つのモードにおける情報が記述されている。6行目では、モードの番号が1である。以降の<media>は印刷用紙の種類、<size>は用紙サイズ、<quality>は印刷品位、<border>は縁あり/なしの情報をそれぞれ記述している。11行目の<dpi>は入力解像度を表しており、横方向が1200[dpi]、縦方向が1200[dpi]である。入力解像度についての詳細は後述する。13行目以降は他のモードであるモード2についての情報が記述されている。このように、プリンタ112の機種名と、そのプリンタが対応している総てのモードがこの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(GetPaperSizeT(i), GetPaperSizeV(i));
}
<!-- 用紙種類-->
var MediaTypeNum = GetMediaTypeNum();
var m = document.getElementById("MediaList");
var j;
for(j=0; j<MediaTypeNum; j++){
m.options[j] = new Option(GetMediaTypeT(j), GetMediaTypeV(j));
}
<!-- 印刷品位 -->
var QualityNum = GetQualityNum();
var q = document.getElementById("QualityList");
var k;
for(k=0; k< QualityNum; k++){
q.options[k] = new Option(GetQualityT(k), GetQualityV(k));
}
<!-- 縁あり/なし-->
var BorderNum = GetBorderNum();
var b = document.getElementById("BorderList");
var l;
for(l=0; l<BorderNum; l++){
b.options[l] = new Option(GetBorderT(l), GetBorderV(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を返す。
ユーザーが、図10に示した設定画面1001の設定完了ボタン1002を押下することにより、図3のステップS35のレンダリングおよびプリント(印刷)処理が開始される。図8は、図3のステップS35のレンダリングおよびプリントの詳細を示すフローチャートである。レンダリングおよびプリントに関しては、そのためのアプリケーションがバックグランドに移行しても処理を継続するように記述されている。その記述方法としては、例えば、iOSであれば、beginBackgroundTaskWithExpirationHandlerなどの、バックグラウンドでも動作可能とする関数を利用する。また、AndroidではServiceなどがそれに相当する。
<svg
xmlns=”http://www.w3.org/2000/svg”
xmlns:xlink=”http://www.w3.org/1999/xlink”
width=”640” height=”480” viewBox=”0 0 640 480”>
<image width=”640” height=”480” x=”0” y=”0”
xlink:href=”Base64の表示用画像データ” id=”画像ID”></image>
<image width=”200” height=”200” x=”300” height=”50”
xlink:href=”スタンプのパス指定”
id=”スタンプのID”></image>
</svg>
以下では、上記のSVG記述を基にレンダリングについて説明する。ただし、上記SVGは概略を説明するためのものであり、細かい設定の記述を省略している箇所もある。
<svg
xmlns=”http://www.w3.org/2000/svg”
xmlns:xlink=”http://www.w3.org/1999/xlink”
width=”4000” height=”3000” viewBox=”0 0 640 480”>
<image width=”640” height=”480” x=”0” y=”0”
xlink:href=” Base64の表示用画像データ”
id=”imageID”></image>
<image width=”200” height=”200” x=”300” height=”50”
xlink:href=”スタンプのパス指定”
id=”スタンプのID”></image>
</svg>
上記記述では、SVGの横幅、縦幅がプリンタへ送信する画像サイズに合わせて変更が加えられている。
<svg
xmlns=”http://www.w3.org/2000/svg”
xmlns:xlink=”http://www.w3.org/1999/xlink”
width=”4000” height=”3000” viewBox=”0 0 640 480”>
<symbol id=”imageID” viewBox=”0 0 640 480”>
<image width=”640” height=”240” x=”0” y=”0”
xlink:href=”上半分画像のBase64” ></image>
<image width=”640” height=”240” x=”0” y=”240”
xlink:href=”下半分画像のBase64” ></image>
</symbol>
<use xlink:href=”#imageID” x=”0” y=”0” width=”640” height=”480” />
<image width=”200” height=”200” x=”300” height=”50”
xlink:href=”スタンプのパス指定”
id=”スタンプのID”></image>
</svg>
上記の例では、画像に関する記述箇所を、ブロック画像群で記述し直している。
<svg
xmlns=”http://www.w3.org/2000/svg”
xmlns:xlink=”http://www.w3.org/1999/xlink”
width=”4005” height=”3000” viewBox=”0 0 4005 3000”>
<svg width=”4000” height=”3000” viewBox=”0 0 640 480”>
<symbol id=”imageID” viewBox=”0 0 640 480”>
<image width=”640” height=”240” x=”0” y=”0”
xlink:href=” 上半分画像のBase64” ></image>
<image width=”640” height=”240” x=”0” y=”240”
xlink:href=” 下半分画像のBase64” ></image>
</symbol>
<use xlink:href=”#imageID” x=”0” y=”0” width=”640” height=”480” />
<image width=”200” height=”200” x=”300” height=”50”
xlink:href=”スタンプのパス指定”
id=”スタンプのID”></image>
</svg>
<rect x=”4000” y=”0” width=”5” height=”100%” fill=”red” />
</svg>
上記記述では、4000×3000画素のSVGを、より大きな4005×3000画素のSVGで囲ったものである。この差分となっている箇所が赤帯を付ける領域となっている。赤帯の利用についてはステップS815にて後述する。
<svg
xmlns=”http://www.w3.org/2000/svg”
xmlns:xlink=”http://www.w3.org/1999/xlink”
width=”4005” height=”3000” viewBox=”0 0 4005 3000”>
<svg x=”0” y=”0”>
<svg width=”4000” height=”3000” viewBox=”0 0 640 480”>
<symbol id=”imageID” viewBox=”0 0 640 480”>
<image width=”640” height=”240” x=”0” y=”0”
xlink:href=” 上半分画像のBase64” ></image>
<image width=”640” height=”240” x=”0” y=”240”
xlink:href=” 下半分画像のBase64” ></image>
</symbol>
<use xlink:href=”#imageID” x=”0” y=”0” width=”640” height=”480” />
<image width=”200” height=”200” x=”300” height=”50”
xlink:href=”スタンプのパス指定”
id=”スタンプのID”></image>
</svg>
<rect x=”4000” y=”0” width=”5” height=”3000” fill=”red” />
</svg>
</svg>
上記では、SVGに対しx座標、y座標を操作するための情報が付与されている。このx、y座標の値を変更することで、描画されるSVGの領域を変更することが可能となる。一つ目のバンドとしては、x、y座標ともに0である。
<svg
xmlns=”http://www.w3.org/2000/svg”
xmlns:xlink=”http://www.w3.org/1999/xlink”
width=”4005” height=”3000” viewBox=”0 0 4005 3000”>
<svg x=”0” y=”-1500”>
<svg width=”4000” height=”3000” viewBox=”0 0 640 480”>
<symbol id=”imageID” viewBox=”0 0 640 480”>
<image width=”640” height=”240” x=”0” y=”0”
xlink:href=”上半分画像のBase64” ></image>
<image width=”640” height=”240” x=”0” y=”240”
xlink:href=”下半分画像のBase64” ></image>
</symbol>
<use xlink:href=”#imageID” x=”0” y=”0” width=”640” height=”480” />
<image width=”200” height=”200” x=”300” height=”50”
xlink:href=”スタンプのパス指定”
id=”スタンプのID”></image>
</svg>
<rect x=”4000” y=”0” width=”5” height=”3000” fill=”red” />
</svg>
</svg>
図12(a)および(b)は、以上説明した、それぞれSVG記述より小さい画面でロードする例と、y座標をずらし、かつ、SVG記述より小さい画面でロードする例を説明する図である。
<svg
xmlns=”http://www.w3.org/2000/svg”
xmlns:xlink=”http://www.w3.org/1999/xlink”
width=”4005” height=”3000” viewBox=”0 0 4005 3000”>
<svg x=”0” y=”-1500”>
<svg width=”4000” height=”3000” viewBox=”0 0 640 480”>
<symbol id=”imageID” viewBox=”0 0 640 480”>
<image width=”640” height=”240” x=”0” y=”0”
xlink:href=”上半分画像のBase64” ></image>
<image width=”640” height=”240” x=”0” y=”240”
xlink:href=”下半分画像のBase64” ></image>
</symbol>
<use xlink:href=”#imageID” x=”0” y=”0” width=”640” height=”480” />
<image width=”200” height=”200” x=”300” height=”50”
xlink:href=”スタンプのパス指定”
id=”スタンプのID”></image>
</svg>
<rect x=”4000” y=”0” width=”5” height=”3000” fill=”red” />
</svg>
</svg>
上述したとおり、データ取得をする領域は実際にOS層が用意した画面のサイズであるから、バンドSVG自体は4005×3000画素の情報が記載されていてよい。ただし、既に取得した情報を再度取得することがないように、バンドSVGのy座標は適切に変更する必要がある。また、SVGの特定エリアを表示する方法は、SVGのviewBoxという属性を操作するなど、どのような方法を利用してもよい。
本発明の第2実施形態は、印刷用アプリケーションがバックグランドに移行した場合、オンメモリで保持していた画像データを、ファイル書き出しによって保存する形態に関するものである。なお、以下の説明は、主に、上述した第1実施形態と異なる点のみについて行うものである。
<svg
xmlns=”http://www.w3.org/2000/svg”
xmlns:xlink=”http://www.w3.org/1999/xlink”
width=”4005” height=”3000” viewBox=”0 0 4005 3000”>
<svg x=”0” y=”-1500”>
<svg width=”4000” height=”3000” viewBox=”0 0 640 480”>
<symbol id=”imageID” viewBox=”0 0 640 480”>
<image width=”640” height=”240” x=”0” y=”0”
xlink:href=” imageID_above.bmp” ></image>
<image width=”640” height=”240” x=”0” y=”240”
xlink:href=” imageID_below.bmp” ></image>
</symbol>
<use xlink:href=”#imageID” x=”0” y=”0” width=”640” height=”480” />
<image width=”200” height=”200” x=”300” height=”50”
xlink:href=”スタンプのパス指定”
id=”スタンプのID”></image>
</svg>
<rect x=”4000” y=”0” width=”5” height=”3000” fill=”red” />
</svg>
</svg>
上記の例では、画像に関する記述箇所を、保存したファイル名で記述し直している。また、既に、4005×1500画素領域はレンダリング処理を実行しているため、svgタグのy要素が、−1500となっている。以降は、上記書き換えたSVGに基づいてバンドレンダリング処理を行う。
本発明の第3実施形態は、レンダリング処理の画像データの解像度を低減することによってアプリケーションが使用するメモリ量を削減する形態に関する。図13は、本発明の第3実施形態に係るレンダリングおよびプリントの詳細を示すフローチャートである。以下、図8に示す処理を異なる点を説明する。
<svg
xmlns=”http://www.w3.org/2000/svg”
xmlns:xlink=”http://www.w3.org/1999/xlink”
width=”2005” height=”1500” viewBox=”0 0 2005 1500”>
<svg x=”0” y=”0”>
<svg width=”2000” height=”1500” viewBox=”0 0 320 240”>
<symbol id=”imageID” viewBox=”0 0 320 240”>
<image width=”320” height=”120” x=”0” y=”0”
xlink:href=” imageID_above.bmp” ></image>
<image width=”320” height=”120” x=”0” y=”120”
xlink:href=” imageID_below.bmp” ></image>
</symbol>
<use xlink:href=”#imageID” x=”0” y=”0” width=”320” height=”240” />
<image width=”100” height=”100” x=”150” height=”25”
xlink:href=”スタンプのパス指定”
id=”スタンプのID”></image>
</svg>
<rect x=”2000” y=”0” width=”5” height=”1500” fill=”red” />
</svg>
</svg>
上記SVGの記述においては、解像度を2000×1500画素として、対応する各箇所を変更している。この記述を用いて、ステップS1310で、バンドSVGの画面生成を行う。このときの画面生成のサイズは、2000×750画素とする。もちろん、レンダリング終了を検知するためのマーカーライン5画素分は、本実施形態においても必要となる。
上述した第1〜第3本実施形態は、ハイブリッドアプリケーションの形態に関するものであるが、本発明の適用はこの形態に限定されるものではない。OS毎に定義された言語によって開発されたアプリケーションであっても本発明を適用できることは上述の説明からも明らかである。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
101 RAM
102 ROM
112 プリンタ
115 情報処理装置
217 スクリプト層
218 ネイティブ層
219 OS層
Claims (15)
- 情報処理装置上で動作するアプリケーションのプログラムであって、
レンダリングのための処理を実行する実行工程と、
前記アプリケーションのフォアグランドからバックグランドへの移行に基づいて、当該アプリケーションが前記実行工程の前記処理を行うことにより使用されるメモリ量を、当該アプリケーションがフォアグランドで動作していた場合より少なくする低減工程と、
を有し、
前記低減工程では、前記実行工程の前記処理に基づくレンダリングにより生成される画像のデータ量を低減することによって、前記使用されるメモリ量を少なくすることを特徴とするプログラム。 - 情報処理装置上で動作するアプリケーションのプログラムであって、
レンダリングのための処理を実行する実行工程と、
前記アプリケーションのフォアグランドからバックグランドへの移行に基づいて、前記情報処理装置が備える所定のメモリにおいて、当該アプリケーションが前記実行工程の前記処理を行うことにより使用されるメモリ量を、当該アプリケーションがフォアグランドで動作していた場合より少なくする低減工程と、
を有し、
前記アプリケーションは、当該アプリケーションがフォアグランドで動作する場合に、前記レンダリングの対象であるデータを前記所定のメモリにオンメモリで保持させ、
前記低減工程では、前記データに対応するファイルを出力し、当該ファイルのファイル名を前記所定のメモリに保持させることによって、前記使用されるメモリ量を少なくすることを特徴とするプログラム。 - 前記低減工程は、前記実行工程の前記処理に基づくレンダリングにより生成される画像のデータ量を低減することによって、前記使用されるメモリ量を少なくすることを特徴とする請求項2に記載のプログラム。
- 前記アプリケーションがフォアグランドで動作する場合、前記実行工程は、第1の画素数の画像がレンダリングにより生成されるように前記処理を実行し、
前記アプリケーションがバックグランドで動作する場合、前記低減工程は、前記第1の画素数よりも少ない第2の画素数の画像がレンダリングにより生成されるように、前記実行工程において前記処理を実行させることを特徴とする請求項1または3に記載のプログラム。 - 前記アプリケーションがバックグランドで動作する場合、所定の画像の一部である前記第2の画素数の領域に対応するデータが繰り返しレンダリングの対象となるように前記実行工程において前記処理が実行されることによって、前記所定の画像が生成されることを特徴とする請求項4に記載のプログラム。
- 前記アプリケーションがフォアグランドで動作する場合、前記所定の画像の一部である前記第1の画素数の領域に対応するデータが繰り返しレンダリングの対象となるように前記実行工程において前記処理が実行されることによって、前記所定の画像が生成されることを特徴とする請求項5に記載のプログラム。
- 前記低減工程は、前記アプリケーションがフォアグランドで動作する場合よりもレンダリングにより生成される画像の解像度を低下させるように、前記実行工程において前記処理を実行させることを特徴とする請求項1または3に記載のプログラム。
- 前記アプリケーションはハイブリッドアプリケーションであることを特徴とする請求項1ないし7のいずれか1項に記載のプログラム。
- 前記アプリケーションは、前記実行工程の前記処理に基づくレンダリングが終了した後に、当該レンダリングにより生成された画像を印刷するための印刷情報をプリンタへ送信することを特徴とする請求項1ないし8のいずれか1項に記載のプログラム。
- 前記実行工程における前記処理により前記レンダリングが所定の画像領域ごとに行われ、前記所定の画像領域ごとのレンダリング後に、生成された印刷情報をプリンタへ送信することを特徴とする請求項9に記載のプログラム。
- 前記実行工程により実行される前記処理は、前記情報処理装置上で動作するオペレーティングシステムにレンダリングを実行させる処理であることを特徴とする請求項1ないし10のいずれか1項に記載のプログラム。
- アプリケーションのプログラムを動作させる情報処理装置であって、
レンダリングのための処理を実行する実行手段と、
前記アプリケーションのフォアグランドからバックグランドへの移行に基づいて、当該アプリケーションが前記実行手段の前記処理を行うことにより使用されるメモリ量を、当該アプリケーションがフォアグランドで動作していた場合より少なくする低減手段と、
を有し、
前記低減手段は、前記実行手段の前記処理に基づくレンダリングにより生成される画像のデータ量を低減することによって、前記使用されるメモリ量を少なくすることを特徴とする情報処理装置。 - アプリケーションのプログラムを動作させる情報処理装置であって、
レンダリングのための処理を実行する実行手段と、
前記アプリケーションのフォアグランドからバックグランドへの移行に基づいて、前記情報処理装置が備える所定のメモリにおいて、当該アプリケーションが前記実行手段の前記処理を行うことにより使用されるメモリ量を、当該アプリケーションがフォアグランドで動作していた場合より少なくする低減手段と、
を有し、
前記アプリケーションは、当該アプリケーションがフォアグランドで動作する場合に、前記レンダリングの対象であるデータを前記所定のメモリにオンメモリで保持させ、
前記低減手段は、前記データに対応するファイルを出力し、当該ファイルのファイル名を前記所定のメモリに保持させることによって、前記使用されるメモリ量を少なくすることを特徴とする情報処理装置。 - アプリケーションのプログラムを動作させるための情報処理方法であって、
レンダリングのための処理を実行する実行工程と、
前記アプリケーションのフォアグランドからバックグランドへの移行に基づいて、当該アプリケーションが前記実行工程の前記処理を行うことにより使用されるメモリ量を、当該アプリケーションがフォアグランドで動作していた場合より少なくする低減工程と、
を有し、
前記低減工程では、前記実行工程の前記処理に基づくレンダリングにより生成される画像のデータ量を低減することによって、前記使用されるメモリ量を少なくすることを特徴とする情報処理方法。 - アプリケーションのプログラムを動作させるための情報処理方法であって、
レンダリングのための処理を実行する実行工程と、
前記アプリケーションのフォアグランドからバックグランドへの移行に基づいて、情報処理装置が備える所定のメモリにおいて、当該アプリケーションが前記実行工程の前記処理を行うことにより使用されるメモリ量を、当該アプリケーションがフォアグランドで動作していた場合より少なくする低減工程と、
を有し、
前記アプリケーションは、当該アプリケーションがフォアグランドで動作する場合に、前記レンダリングの対象であるデータを前記所定のメモリにオンメモリで保持させ、
前記低減工程では、前記データに対応するファイルを出力し、当該ファイルのファイル名を前記所定のメモリに保持させることによって、前記使用されるメモリ量を少なくすることを特徴とする情報処理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016204253A JP6786342B2 (ja) | 2016-10-18 | 2016-10-18 | 情報処理装置、情報処理方法およびプログラム |
US15/722,250 US10423347B2 (en) | 2016-10-18 | 2017-10-02 | Information processing apparatus, information processing method, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016204253A JP6786342B2 (ja) | 2016-10-18 | 2016-10-18 | 情報処理装置、情報処理方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018067087A JP2018067087A (ja) | 2018-04-26 |
JP6786342B2 true JP6786342B2 (ja) | 2020-11-18 |
Family
ID=61904515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016204253A Active JP6786342B2 (ja) | 2016-10-18 | 2016-10-18 | 情報処理装置、情報処理方法およびプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US10423347B2 (ja) |
JP (1) | JP6786342B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7207001B2 (ja) * | 2019-02-22 | 2023-01-18 | ブラザー工業株式会社 | 情報処理プログラム及び情報処理装置 |
US11595193B2 (en) * | 2020-07-10 | 2023-02-28 | Vmware, Inc. | Secure data storage for anonymized contact tracing |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0918732A (ja) * | 1995-07-03 | 1997-01-17 | Canon Inc | 情報処理装置及びその方法 |
US6910106B2 (en) * | 2002-10-04 | 2005-06-21 | Microsoft Corporation | Methods and mechanisms for proactive memory management |
JP2008097425A (ja) * | 2006-10-13 | 2008-04-24 | Mitsubishi Electric Corp | 携帯情報端末および携帯情報端末の制御方法 |
JP4726231B2 (ja) | 2006-10-24 | 2011-07-20 | キヤノン株式会社 | 印刷制御装置、印刷制御方法、プログラム及び記憶媒体 |
JP5511230B2 (ja) * | 2009-06-12 | 2014-06-04 | キヤノン株式会社 | 通信装置、通信装置の制御方法およびプログラム |
US8402191B2 (en) * | 2010-12-30 | 2013-03-19 | Stmicroelectronics, Inc. | Computing element virtualization |
JP2013043405A (ja) * | 2011-08-25 | 2013-03-04 | Canon Inc | 情報処理装置、その制御方法、および制御プログラム |
JP2013089042A (ja) * | 2011-10-18 | 2013-05-13 | Aisin Aw Co Ltd | 情報処理システム、情報処理方法、及び情報処理プログラム |
US9858052B2 (en) * | 2013-03-21 | 2018-01-02 | Razer (Asia-Pacific) Pte. Ltd. | Decentralized operating system |
US9558787B2 (en) * | 2014-01-29 | 2017-01-31 | Google Inc. | Media application backgrounding |
JP6478487B2 (ja) * | 2014-06-13 | 2019-03-06 | キヤノン株式会社 | 情報処理装置、情報処理方法、及びプログラム |
JP6438218B2 (ja) | 2014-06-13 | 2018-12-12 | キヤノン株式会社 | 装置、方法、及びプログラム |
JP6378645B2 (ja) | 2014-06-13 | 2018-08-22 | キヤノン株式会社 | 情報処理装置、制御方法、及びプログラム |
JP6386803B2 (ja) | 2014-06-13 | 2018-09-05 | キヤノン株式会社 | 装置、方法、及びプログラム |
JP5901704B2 (ja) | 2014-06-30 | 2016-04-13 | キヤノン株式会社 | 情報処理装置、情報処理方法、プログラム |
JP6381319B2 (ja) | 2014-06-30 | 2018-08-29 | キヤノン株式会社 | 情報処理装置、処理方法、及びプログラム |
JP6463914B2 (ja) | 2014-06-30 | 2019-02-06 | キヤノン株式会社 | 情報処理装置、処理方法、及びプログラム |
JP6525517B2 (ja) | 2014-06-30 | 2019-06-05 | キヤノン株式会社 | 情報処理装置、制御方法、及びプログラム |
JP6138088B2 (ja) | 2014-06-30 | 2017-05-31 | キヤノン株式会社 | 情報処理装置、制御方法、及びソフトウェアプログラム |
JP6363888B2 (ja) | 2014-06-30 | 2018-07-25 | キヤノン株式会社 | 情報処理装置、およびプログラム |
US10101910B1 (en) * | 2015-09-15 | 2018-10-16 | Amazon Technologies, Inc. | Adaptive maximum limit for out-of-memory-protected web browser processes on systems using a low memory manager |
JP6649832B2 (ja) | 2016-03-30 | 2020-02-19 | キヤノン株式会社 | 情報処理装置およびその制御方法、並びにプログラム |
-
2016
- 2016-10-18 JP JP2016204253A patent/JP6786342B2/ja active Active
-
2017
- 2017-10-02 US US15/722,250 patent/US10423347B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018067087A (ja) | 2018-04-26 |
US10423347B2 (en) | 2019-09-24 |
US20180107418A1 (en) | 2018-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10296267B2 (en) | Information processing apparatus, information processing method, and storage medium | |
JP6799396B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
US9436413B2 (en) | Information processing apparatus, information processing method, and storage medium storing program | |
JP6381319B2 (ja) | 情報処理装置、処理方法、及びプログラム | |
US20150363173A1 (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 | |
JP6138088B2 (ja) | 情報処理装置、制御方法、及びソフトウェアプログラム | |
US9465571B2 (en) | Apparatus, method, and non-transitory computer-readable storage medium | |
US10228890B2 (en) | Apparatus, method, and non-transitory computer-readable storage medium | |
US9575702B2 (en) | Information processing apparatus, information processing method, and storage medium storing program having a layered structure | |
JP6786342B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
JP6649832B2 (ja) | 情報処理装置およびその制御方法、並びにプログラム | |
JP7395334B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
JP6757368B2 (ja) | 情報処理装置、処理方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191018 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200521 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200630 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200827 |
|
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: 20200929 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201028 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6786342 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |