JP2018067087A - 情報処理装置、情報処理方法およびプログラム - Google Patents
情報処理装置、情報処理方法およびプログラム Download PDFInfo
- Publication number
- JP2018067087A JP2018067087A JP2016204253A JP2016204253A JP2018067087A JP 2018067087 A JP2018067087 A JP 2018067087A JP 2016204253 A JP2016204253 A JP 2016204253A JP 2016204253 A JP2016204253 A JP 2016204253A JP 2018067087 A JP2018067087 A JP 2018067087A
- Authority
- JP
- Japan
- Prior art keywords
- image
- application
- printer
- layer
- svg
- 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
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
-
- 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]
-
- 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
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)
Abstract
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のステップS23のスタンプ追加の詳細を示すフローチャートである。以下の説明では、ユーザー操作によって、図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" > </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 (10)
- 情報処理装置上で動作するアプリケーションのプログラムであって、
前記アプリケーションがフォアグランドからバックグランドへ移行したことを検知する検知工程と、
前記アプリケーションがバックグランドへ移行したことを検知した場合、当該アプリケーションが使用するメモリの量を、フォアグランドで動作していた場合より少なくする低減工程と、
を有したことを特徴とするプログラム。 - 前記アプリケーションは、印刷用コンテンツをレンダリングする処理を実行し、前記低減工程は、レンダリングの対象である画像データの量を低減することによって、前記使用するメモリの量を少なくすることを特徴とする請求項1に記載のプログラム。
- 前記低減工程は、レンダリングの対象である画像データのサイズを小さくすることによって、前記使用するメモリの量を少なくすることを特徴とする請求項2に記載のプログラム。
- 前記低減工程は、レンダリングの対象である画像データの解像度を低下させることによって、前記使用するメモリの量を少なくすることを特徴とする請求項2に記載のプログラム。
- 前記アプリケーションは、印刷用コンテンツをレンダリングする処理を実行し、前記低減工程は、レンダリングの対象である画像データを前記メモリにオンメモリで保持せずにファイル名の形態で保持することによって、前記使用するメモリの量を少なくすることを特徴とする請求項1に記載のプログラム。
- 前記アプリケーションはハイブリッドアプリケーションであることを特徴とする請求項1ないし5のいずれか1項に記載のプログラム。
- 前記アプリケーションは、レンダリングが終了した後に、印刷情報をプリンタへ送信することを特徴とする請求項1ないし6のいずれか1項に記載のプログラム。
- 前記アプリケーションは、前記レンダリングを所定の画像領域ごとに行い、前記所定の画像領域ごとのレンダリング後に生成した印刷情報をプリンタへ送信することを特徴とする請求項2ないし6のいずれか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 true JP2018067087A (ja) | 2018-04-26 |
JP6786342B2 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020135601A (ja) * | 2019-02-22 | 2020-08-31 | ブラザー工業株式会社 | 情報処理プログラム及び情報処理装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11595193B2 (en) * | 2020-07-10 | 2023-02-28 | Vmware, Inc. | Secure data storage for anonymized contact tracing |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0918732A (ja) * | 1995-07-03 | 1997-01-17 | Canon Inc | 情報処理装置及びその方法 |
JP2008097425A (ja) * | 2006-10-13 | 2008-04-24 | Mitsubishi Electric Corp | 携帯情報端末および携帯情報端末の制御方法 |
JP2013043405A (ja) * | 2011-08-25 | 2013-03-04 | Canon Inc | 情報処理装置、その制御方法、および制御プログラム |
JP2013089042A (ja) * | 2011-10-18 | 2013-05-13 | Aisin Aw Co Ltd | 情報処理システム、情報処理方法、及び情報処理プログラム |
WO2015116827A1 (en) * | 2014-01-29 | 2015-08-06 | Google Inc. | Media application backgrounding |
JP2016004320A (ja) * | 2014-06-13 | 2016-01-12 | キヤノン株式会社 | 情報処理装置、情報処理方法、及びプログラム |
JP2016015538A (ja) * | 2014-06-30 | 2016-01-28 | キヤノン株式会社 | 情報処理装置、処理方法、及びプログラム |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6910106B2 (en) * | 2002-10-04 | 2005-06-21 | Microsoft Corporation | Methods and mechanisms for proactive memory management |
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 |
US9858052B2 (en) * | 2013-03-21 | 2018-01-02 | Razer (Asia-Pacific) Pte. Ltd. | Decentralized operating system |
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 | キヤノン株式会社 | 情報処理装置、情報処理方法、プログラム |
JP6525517B2 (ja) | 2014-06-30 | 2019-06-05 | キヤノン株式会社 | 情報処理装置、制御方法、及びプログラム |
JP6381319B2 (ja) | 2014-06-30 | 2018-08-29 | キヤノン株式会社 | 情報処理装置、処理方法、及びプログラム |
JP6363888B2 (ja) | 2014-06-30 | 2018-07-25 | キヤノン株式会社 | 情報処理装置、およびプログラム |
JP6138088B2 (ja) | 2014-06-30 | 2017-05-31 | キヤノン株式会社 | 情報処理装置、制御方法、及びソフトウェアプログラム |
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
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0918732A (ja) * | 1995-07-03 | 1997-01-17 | Canon Inc | 情報処理装置及びその方法 |
JP2008097425A (ja) * | 2006-10-13 | 2008-04-24 | Mitsubishi Electric Corp | 携帯情報端末および携帯情報端末の制御方法 |
JP2013043405A (ja) * | 2011-08-25 | 2013-03-04 | Canon Inc | 情報処理装置、その制御方法、および制御プログラム |
JP2013089042A (ja) * | 2011-10-18 | 2013-05-13 | Aisin Aw Co Ltd | 情報処理システム、情報処理方法、及び情報処理プログラム |
WO2015116827A1 (en) * | 2014-01-29 | 2015-08-06 | Google Inc. | Media application backgrounding |
JP2016004320A (ja) * | 2014-06-13 | 2016-01-12 | キヤノン株式会社 | 情報処理装置、情報処理方法、及びプログラム |
JP2016015538A (ja) * | 2014-06-30 | 2016-01-28 | キヤノン株式会社 | 情報処理装置、処理方法、及びプログラム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020135601A (ja) * | 2019-02-22 | 2020-08-31 | ブラザー工業株式会社 | 情報処理プログラム及び情報処理装置 |
JP7207001B2 (ja) | 2019-02-22 | 2023-01-18 | ブラザー工業株式会社 | 情報処理プログラム及び情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
US20180107418A1 (en) | 2018-04-19 |
US10423347B2 (en) | 2019-09-24 |
JP6786342B2 (ja) | 2020-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10296267B2 (en) | Information processing apparatus, information processing method, and storage medium | |
US9471284B2 (en) | Apparatus, method, and non-transitory computer-readable storage medium | |
JP6381319B2 (ja) | 情報処理装置、処理方法、及びプログラム | |
US9436413B2 (en) | Information processing apparatus, information processing method, and storage medium storing program | |
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 | |
US10157027B2 (en) | Information processing apparatus that executes printing based on whether drawn data includes data for a predetermined element, information processing method, and non-transitory computer-readable storage medium storing program | |
JP6478487B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
US10075620B2 (en) | Information processing apparatus, control method for information processing apparatus, 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) | 情報処理装置およびその制御方法、並びにプログラム | |
JP6757368B2 (ja) | 情報処理装置、処理方法、及びプログラム | |
JP7395334B2 (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 |