約 3,987,605 件
https://w.atwiki.jp/terragen/pages/174.html
Node Type Colour Shader ノード説明と目的 『Image Map Shader』は、対応する多くのフォーマットのいずれかの外部イメージマップファイルを読み込む事が出来ます。 ここ で対応する画像フォーマットを網羅したリストを確認する事が出来ます。 読み込んだイメージマップをシーン内に適用させるテクスチャとして、シーン内に投影するための方法をコントロールする事が出来ます。位置決めはもちろん、反転や反復だけでなく、カラー値の調整やディスプレースメント適用の有無、イメージマップ特有の効果などをコントロールします。 設定 Image filename 画像ファイル名 シェーダが使用する画像ファイルを指定します。右のフォルダボタンを使用してファイルの選択ダイアログを開く事が出来ます。 Projection、Locationタブ Projection type 投影の種類 このポップアップで、画像をシーンに投影または適用する方法をコントロールします。ポップアップには、以下のオプションがあります -Plan Y (edges = XZ) 画像を直下にY軸に沿ってシーンの縦方向に投影します。-Side X (edges = YZ) 画像をX軸に沿ってシーン内を水平に投影します。-Size Z (edges = XY) 画像をZ軸に沿ってシーン内を水平に投影します。-Through camera 画像は、"Projection camera"パラメータで指定したカメラを通して投影します。-Object UV (if available) 平面画像を不規則な形状のモデルに貼り付けるための方法であり、オブジェクトファイルの中に2D(平面)のUV座標を持っているインポートオブジェクトのために使用します。TGには UVマップを生成する機能がないため、外部ツール(たとえば『World Machine』など)を使用する必要があります。マップ座標が(x,y)に対して頂点座標は(u,v)で表します。UV座標はテクスチャの縦、横の幅を1とした時の比率で表記されます。-Cylindrical 円柱投影はオブジェクトを包み込む様な投影に有効ですが、平面、凹凸のあるオブジェクトには不向きです。-Spherical 球面投影は球体オブジェクトに対し歪みの無い投影を行いますが、オブジェクトの形状により円柱投影の方が汎用に扱う事が出来ます。 Projection camera 投影カメラ この設定で、"Projection type"が"Through camera"に設定されている時、画像投影に使用するカメラを割り当てる事が出来ます。既存のカメラを選択するか、新しいカメラを作成するには、フィールド右側にある割り当てボタン(+)を使用します。画像の投影にのみ使用するカメラを作成する事が出来ます。このフィールドにどのカメラも設定されていない場合は、現在シーンをビューしている『Render Camera』が自動的に割り当てられます。 Position center 中央位置 -中央位置 チェック時、"Projection type"を"Through camera"にしている場合は、画像は"Projection camera"の位置座標を基準にして中央に配置します。その他の場合は下の"Position"座標を基準にして中央に配置します。-左下位置 チェック時、"Projection type"を"Through camera"にしている場合は、画像は"Projection camera"の位置座標を基準にして左下に配置します。その他の場合は下の"Position"座標を基準にして左下に配置します。 Position lower left 左下位置 Position 位置 画像の配置座標を設定します。(x,y) Size サイズ 画像サイズ(単位 メートル)を設定します。デフォルトでは、画像は(1m x 1m)です。画像は設定したサイズに合わせて伸縮します。"Projection type"時に、「Plan Y」、「Side X」、「Side Z」の選択時はメートル単位として設定され、それ以外は画像を相対数値として設定されます。入力フィールドの値は画像データの(横 縦)比になります。例えば、「Spherical」を選んで地球の画像データを貼り付ける時は、(1[ 等倍 ] 0.5[ 半分 ])にします。 Image size (pixels) 画像サイズ(ピクセル) 画像の実際のサイズをピクセル単位で表示します。 Border blending 境界の混合 画像境界をぼかす事で、下地のテクスチャとの混合を滑らかにします。0はぼかしは無く境界が際立ち、最大の1に近付く程周辺のぼかし範囲が広がり、1で完全に画像は消えてしまいます。 Mask by shader シェーダでマスク処理 チェック時、指定されたシェーダまたは割り当てたノードを使用してこのシェーダをブレンド(マスク)します。指定されたシェーダまたはノードがこのシェーダのマスクになります。指定されたシェーダによって生成された拡散色またはブレンド関数によって生成された値は、ブレンド量として解釈されます。1は100%のブレンド量であり、0はブレンドしません。これらの量は、このシェーダの色と変位が入力にどれだけ適用されるかを決定します。0以下または1以上の値が使用可能となります。シェーダの白い部分は、イメージマップの詳細を示します。 グレーの陰影は画像マップの不透明度をコントロールします。旧パラメータ名は"Blend by shader"と呼ばれている通り、抽出した特定のエリアに対して覆い隠したり、強調させたり、あるいは他シェーダによって効果のブレンドを行います。 Fit mask to this マスクに適合 チェック時、指定されたシェーダに、このシェーダのテクスチャ空間に再マッピングするための異なるテクスチャ座標が与えられます。すべてのシェーダがテクスチャ座標を使用するわけではないので、効果の無い場合もあります。実際には、マスクシェーダの入力を、マスクシェーダと同じスケールまたはエリアに拡大縮小する事を意図しています。常用する設定ではないですが、、例えば、マスクシェーダとして『Image map shader』(範囲内を覆うなど)を使用する場合には有用かもしれませんが、マスクシェーダとしての別の処理上のプロシージャル入力としての用途には不適切です。 Invert mask マスクの反転 チェック時、指定したマスク処理を行う特定の範囲を反転します。 Flip,Repeatタブ このタブには、画像の反転、反復させるための設定があります。 画像のタイルを作成するには、"Repeat x"と"Repeat y"の両方のチェックボックスをオンにします。 Flip x x時方向に反転 チェック時、画像はX軸方向に反転します。 Flip y y時方向に反転 チェック時、画像はy軸方向に反転します。 Repeat x x軸に反復 チェック時、それぞれx軸、y軸、または両軸に沿って画像を反復します。"Mask by shader"で反復範囲を設定しない限り、対象の全面を反復画像で覆います。 Repeat y y軸に反復 Colourタブ このタブには、『Image Map Shader』が画像からカラー情報を生成する方法をコントロールする設定があります。 Apply colour カラーを適用 チェック時、このノードは画像からカラーを生成します。 Smooth interpolation 滑らかな補間 チェック時、画像のカラー値(明度)を滑らかに補間します。未チェックの場合、補間は適用されずに陰影付けされている点のピクセルからカラーが取得されます。そのため、チェック時に比べてブロック化されたような結果が与えられます。使用する画像によって使い分けると良いでしょう。 Unpremultiply アンプリマルチプライ処理 チェック時、このノードは画像のアルファ値で画像のカラー値をアンプリマルチプライ処理します。画像の透明部分の端に異常なフリンジ(縞模様)がある場合や、"Mask by shader"などで画像の一部を切り抜いた際に発生するフリンジを取り除く時に、このパラメータを変更してみて下さい。上記写真では、画像と透明部分の境界に黒い縁のようなものが「有効」時に目立たなくなっています。 Convert to linear リニアに変換 このラジオボタンをチェック時、画像はガンマ補正され、リニア(線形)色空間に変換する切り替えが行われたものと想定します。変換に使用されるガンマ値は、"Conversion gamma"パラメータで指定します。これは、グラデーションの濃淡をリニア上ではなく、人間の目に正しく見えるようにするために、ガンマ空間で処理する事で、濃淡の段階が滑らかに表示されます。 Data is linear データはリニア 画像をガンマ補正せずにリニア(線形)色空間で使用する場合は、このラジオボタンをチェックします。 Conversion gamma 変換するガンマ値 "Convert to linear"にチェック時、このパラメータ値を使ってガンマ変換します。 Multiply RGB RGBの乗算 RGB値を設定する事で、画像を任意のグレースケールに調整します。 Offset RGB RGB値のオフセット RGB値のそれぞれのチャンネルに任意の値を付加します。(0-1) Displacementタブ このタブには、読み込んだ画像からどのようにディスプレースメントを生成するかをコントロールする設定があります。 ディスプレースメント値は、画像内のピクセルの輝度を使用して計算します。 Apply displacement ディスプレースメントを有効 チェック時、読み込んだ画像を元にディスプレースメントを生成します Displacement amplitude ディスプレースメント振幅 画像から計算されたディスプレースメント値をスケーリングします。値が1の場合変化はありません。値が2の場合ディスプレースメント値は2倍になり、値が0.5の場合半分になります。負の値はディスプレースメント値を反転させます。 Displacement offset ディスプレースメントのオフセット この値は、"Displacement multiplier"パラメータで乗算された後に、ディスプレースメントの入力値に加算されます。これにより、ディスプレースメントが上方向、または下方向に方向にオフセットする効果が生じます。正の値はディスプレースメントを押し出して、それが台座に座っているかのように見えます。負の値は、ディスプレイスメントが表層の中に沈みます。それはディスプレースメントを逆にするのではなく、むしろ表層に穴を作り、穴の底にディスプレースメントを適用する事に近いです。 Smooth disp interpolation 滑らかなディスプレースメント補間 チェック時、画像からディスプレースメント値を滑らかに補間する事が出来ます。未チェック時、補間は使用されず、陰影付けされている点のピクセルからディスプレースメント値を取り入れます。これにより、ブロック化された結果が得られます。 Convert disp to linear ディスプレースメントをリニアに変換 このラジオボタンをチェック時、画像はガンマ補正され、ディスプレースメント値が計算される前にリニア(線形)色空間に変換します。変換に使用されるガンマ値は、"Disp conversion gamma"パラメータで指定します。 Disp data is linear ディスプレースメント値のデータはリニア 画像をガンマ補正せずにリニア(線形)色空間で使用する場合は、このラジオボタンをチェックします。 Disp conversion gamma 変換するディスプレースメントのガンマ値 "Convert disp to linear"にチェック時、このパラメータ値を使ってガンマ変換します。 Use settingss from Colour tab (compatible with old versions) [Colour]タブの設定を使用する(旧バージョンとの互換性) [Colour]タブで設定された画像補正の設定値をこのタブにも適用します。 Effectsタブ このタブには、透明度と半透明に関連する設定が含まれています。 TG v3.1.02.0以降には、アルファ透明度の反転、アルファ/透明度を使用して直接混合を行う追加設定があります。アルファ/透明度を使用して直接混合する場合に、特に便利な新しいオプションです。これまでは、画像そのもののアルファチャンネルを使用して、画像を下地のサーフェスと混合する事が少し複雑でした。なぜなら、同じ画像ファイルを使用する別の『Image map shader』を作成し、それをシェーダのマスクとして使用する必要がありました。今は、"Use alpha/transparency for direct blending"をチェックするだけです。これにより、画像のアルファチャンネルを使用するか、指定のキーカラーを使用して生成された透明度を使用して、画像を下地のサーフェスに混合する事が出来ます。 Alpha as opacity 不透明としてのアルファ チェック時、画像のアルファチャンネルを不透明/透明として使用します。 Alpha as colour カラーとしてのアルファ チェック時、画像のアルファチャンネルがRGBチャンネルに置き換わります。これにより、実際にアルファチャンネルがグレースケール画像として表示されます。 Create transparency 透明度を作成 チェック時、シェーダは画像の色に基づいて透明度を生成します。透明に使用される色は、"Transparency key"パラメータで設定します。 Transparency key 透明度キー 透明度キーは、透明度の生成に使用する色を設定します。例えば、緑色の領域を透明にする場合は、アルファキーを緑色に設定します。キーの許容値は、"Transparency key"の色に似た色の濃淡を使用して不透明度を生成します。数値が高い程、透明度キーの許容値が広がり、より多くの同系色を許容値とします。カラーパターン画像から、青系色を設定した場合のサンプル画像。【Terrain】- "Displacement shader"- 『Image Map Shader』で画像を読込み、"Displacement amplitude"のパラメータを設定する事で地形の生成として使用する事が出来ます。この場合、画像はグレースケールの(0-1)の階調となるので、地形の下部や上部を透明にして、地形の合成を行う事も可能となります。 Key tolerance キーの許容値 Invert alpha/transparency アルファ/透明度の反転 チェック時、画像のアルファ/不透明/透明度が反転します。これにより、不透明領域が透明になり、逆も同様になります。 Use alpha/transparency for direct blending アルファ/透明度を直接混合に使用 チェック時、画像のアルファチャンネルまたは生成された透明度を使用して、画像を下地のサーフェスと混合します。未チェックの場合、透明部分は下地のサーフェスに穴をあけるクッキーの抜きに少し似たような作動をし、レンダリングが全く出来なくなります。チェックを入れる事で、画像は切り取られるのではなく、下地のサーフェスと混合されるので、下地のサーフェスの色が見えるようになります。レンダリングの例をいくつか揚げます 上記レンダリング画像は、地上のサーフェスとしてシェーダを使用しています。シェーダで使用される画像の黒い部分は透明です。左画像では、混合のない画像が表示されます。中央画像は、"Alpha as opacity"にチェックした場合の結果です。グレーの部分は惑星の内部が表示されています。画像のアルファチャンネルが地形に穴を開けた結果です。右画像は、"Use alpha/transparency for direct blending"にチェックした場合の結果です。見て分かるように、黒い部分は穴を切り取る代わりに、下地のサーフェスと混合しています。直接混合を使用すると、不透明度設定としてアルファが上書きされる事に注意することが重要です。"Alpha as opacity"をチェックしてから、"Use alpha/transparency for direct blending"をチェックすると、直接混合の作動が得られます。 Translucent 半透明 チェック時、画像の半透明を有効にします。右側のスライダは半透明の量をコントロールします。半透明は、サーフェスを通過する光のフィルタリング効果をもたらします。例として、葉のテクスチャに半透明を使用して、通過する光をシミュレートする事が出来ます。これは、不透明度/透明度とは異なります。半透明で詳細を参照して下さい。 Translucency tint 半透明の色合い 半透明効果の色調を設定します。これについては、半透明で詳しく説明します。
https://w.atwiki.jp/djmax3/pages/30.html
Image - 全10ページ 1ページ目 私に来て 1 私に来て 2 The Night Stage 1 The Night Stage 2 Color 1 Color 2 Creator 1 Creator 2 Creator 3 Flea 1 2ページ目 Flea 2 Freedom 1 Freedom 2 Freedom 3 Electronics 1 Electronics 2 Love mode 1 Love mode 2 武鬪 1 武鬪 2 3ページ目 武鬪3 武鬪4 永遠1 永遠2
https://w.atwiki.jp/lib0924/pages/20.html
tags Computer SEM解析 画像処理(edit, up) ImageJ Contents 引用 ImageJオフィシャルサイトどのImageJをダウンロードすればいいか(Windowsの場合3種類) インストールする Histogram ガンマ補正 work 動画 引用 ImageJはその思想的祖先であるNIHimageと同様にアメリカ国立衛生研究所 (NIH) で開発されたオープンソースでパブリックドメインの画像処理ソフトウェア。 Java1.1以降のVM上で動作し、Mac OS X、Mac OS、Windows、Linux、ザウルス用のソフトウェアが開発サイトから入手できる。 NIH Imageはもともと医療画像の解析用に作られており、ImageJも科学研究者向けの特徴をもっている。 ImageJ (ウィキペディア) ImageJオフィシャルサイト Image Processing and Analysis in Java ImageJ ImageJ Features 特徴 ImageJ Documentation 資料 ImageJ - Download Download どのImageJをダウンロードすればいいか(Windowsの場合3種類) インストールするPCがWindowsの64ビット版でJavaが未インストールなら、"bundled with 64-bit Java"をクリックしてダウンロードする。 インストールするPCがWindowsの32ビット版でJavaが未インストールなら、"32-bit Java"をクリックしてダウンロードする。 インストールするPCにJavaがインストールされていれば、"without Java"をクリックしてダウンロードする。 ※ Linux, Mac OS Xはやったことない。 tags Computer SEM解析 画像処理(edit, up) インストールする ImageJ のインストール (Windows 上にインストール) ← ここ参照 tags Computer SEM解析 画像処理(edit, up) Histogram ヒストグラムを理解しよう デジタル一眼レフカメラ初心者入門講座 tags Computer SEM解析 画像処理(edit, up) ガンマ補正 ガンマ補正 tags Computer SEM解析 画像処理(edit, up) work Drop of withdom ImageJのドキュメンテーションを日本語訳 ImageJ日本語情報 ImageJ公式サイトの日本語訳 LifeScienceProject 面積の測りかたなど。 tags Computer SEM解析 画像処理(edit, up) 動画 ImageJを利用して画像を処理・解析する ImageJを利用して画像を処理・解析する-2 ImageJの画像処理パッケージFijiを使って画像を三次元的に解析する YouTubeをImageJで検索した結果 tags Computer SEM解析 画像処理(edit, up)
https://w.atwiki.jp/kakis/pages/5658.html
fadima /// / 仕事時間、営業時間 fad\ima \ 17 seren klel \ [ ova ] \ 営業時間を終える \
https://w.atwiki.jp/usonx/pages/63.html
ImageJでのパンシャープン処理の方法 位置合わせを行ったPa画像とMu画像を用意する。 両方の画像ともHSI(HSB)チャンネルに変換する。 MuのIチャンネルをPaのチャンネルと入れ替える。 MuのHSIをRGBに戻す。 パンシャープン処理完了 ImageJでのモザイク処理(画像結合) ImageJはプラグインを追加することで、モザイク処理を行うことが可能となる。 まず、必要なプラグインは以下の2つ。以下をDLし解凍する。TurboRegが画像の位置合わせの処理をしている模様。 MosaicJ TurboReg ImageJのプラグインフォルダに解凍した*.jarファイルを入れる。 ImageJを起動する。 プラグインメニューから「MosaicJ」が選択できるので、選択起動する。 モザイク処理を行いたい画像を複数選択する。 手動で位置を合わせる。(自動化はできない) メニューからCreate Mosaic?を選択する。 お試しとして、本ページにアップしてある画像「sample1」と「sample2」をモザイク処理してみると良い。 ImageJでマクロを作る 良くppmからjpgに変換するので、マクロを作成した。 「ppm2jpg.ijm」とかの適当な名前で保存し、ImageJのフォルダにある「Macro」フォルダの中に置く。 ppm2jpg.ijm ImageJを起動し、「Plugins Macros」を選択し、「Install」を選び、作成したmacroファイルを選ぶとリストに表示される。 saveAsjpg(); function saveAsjpg() { path = getDirectory("image"); name = getInfo("image.filename"); saveAs("jpg", path+replace(name, ".ppm", ".jpg")); } 特定のフォルダ内の画像を自動で処理するテンプレ input = getDirectory("Input directory"); output = getDirectory("Output directory"); Dialog.create("File type"); Dialog.addString("File suffix ", ".ppm", 5); Dialog.show(); suffix = Dialog.getString(); processFolder(input); function processFolder(input) { list = getFileList(input); for (i = 0; i list.length; i++) { if(File.isDirectory(list[i])) processFolder("" + input + list[i]); if(endsWith(list[i], suffix)) processFile(input, output, list[i]); } } function processFile(input, output, file) { // do the processing here by replacing // the following two lines by your own code print("Processing " + input + file); open(input+file); print("Saving to " + output); saveAsjpg(input,output,file); close(); } function saveAsjpg(input,output,name) { // 変換処理 //path = getDirectory("image"); //name = getInfo("image.filename"); saveAs("jpg", output+replace(name, ".ppm", ".jpg")); }
https://w.atwiki.jp/qtmemo/pages/39.html
QImage QImage クラスは画像を扱うペイントデバイスです。 メソッド コンストラクター QImage QImage() 空の QImage オブジェクトを生成します。 //空のQImageオブジェクトQImage image1; QImage QImage(const QSize size, Format format) サイズ QSize 及びフォーマット format を指定して、QImage オブジェクトを生成します。 メモリの割り当てに失敗した場合、空の QImage オブジェクトを生成します。 QImage QImage(int width, int height, Format format) 幅(ピクセル単位) width、高さ(ピクセル単位) height 及びフォーマット format を指定して、QImage オブジェクトを生成します。 メモリの割り当てに失敗した場合、空の QImage オブジェクトを生成します。 //100*200 RGBAフォーマットQImage image2(QSize(100, 200), QImage Format_RGBA8888);QImage image3(100, 200, QImage Format_RGBA8888); QImage QImage(uchar * data, int width, int height, Format format, QImageCleanupFunction cleanupFunction = 0, void * cleanupInfo = 0) 幅(ピクセル単位) width、高さ(ピクセル単位) height、フォーマット format を指定して、QImage オブジェクトを生成します。 既に存在するメモリバッファー data を使用します。 //Blue=255 Green=0 Red=0 Alpha=255 4px*8pxuchar databuffer[] ={255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255,255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255,255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255,255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255,255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255,255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255,255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255,255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255,};//4px*8px RGBAフォーマット databufferは非constQImage image4(databuffer, 4, 8, QImage Format_RGBA8888); data 及び data の各スキャンラインは32bitにアラインメントされている必要があります。 要するにuchar型は1バイトなので data の要素数が4で割り切れる数でなければならないということです。 //4バイトなのでOKuchar databuffer[] ={204, 204, 204, 204,};//7バイトなのでNGuchar databuffer[] ={204, 204, 204, 204, 204, 204, 204,}; 画像フォーマットがインデックスカラー形式の場合、QImage オブジェクトのカラーテーブルは空なので、使用する前に setColorCount() または setColorTable() で設定する必要があります。 メモリバッファー data は QImage オブジェクト及び修正が加えられてない QImage オブジェクトからのすべてのコピーの寿命が終わるまで削除してはいけません。修正が加えられた場合はオリジナルバッファーから切り離されます。 QImage image(databuffer,4,8,QImage Format_ARGB32);delete databuffer; //QImageオブジェクトで参照しているので削除してはダメ QImage オブジェクトが破棄された際にメモリバッファー data は削除されません。 手動で破棄するには関数ポインタ cleanupFunction 及び cleanupInfo を設定することができます。 cleanupFunction 関数は最後のコピーが破棄された際に呼び出されます。 QImage image(databuffer,4,8,QImage Format_ARGB32,myImageCleanupHandler, CleanupInfo());//--------------------------------//cleanupFunctionの定義void myImageCleanupHandler(void* info){qDebug() ((CleanupInfo*)info)- str();}//cleanupInfoの定義struct CleanupInfo{QString str(){return QString("myImageCleanupHandler is called");}}; 参考リンク 32bitアラインメント スキャンライン インデントカラー形式 QImage QImage(const uchar * data, int width, int height, Format format, QImageCleanupFunction cleanupFunction = 0, void * cleanupInfo = 0) 非constのメモリバッファーを取るコンストラクタと違い、メモリバッファーの内容を変更することができません。 例えば QImage bits() を呼ぶとコンストラクターに与えられたメモリバッファーではなく、画像のディープコピーを返します。 QImage QImage(uchar * data, int width, int height, int bytesPerLine, Format format, QImageCleanupFunction cleanupFunction = 0, void * cleanupInfo = 0) bytesPerLine で一行あたりのバイト数(ストライド)を指定します。 参考リンク ストライド QImage QImage(const uchar * data, int width, int height, int bytesPerLine, Format format, QImageCleanupFunction cleanupFunction = 0, void * cleanupInfo = 0) 非constのメモリバッファーを取るコンストラクタと違い、メモリバッファーの内容を変更することができません。 例えば QImage bits() を呼ぶとコンストラクターに与えられたメモリバッファーではなく、画像のディープコピーを返します。 QImage QImage(const char * const[] xpm) 保留 QImage QImage(const QString fileName, const char * format = 0) ファイルパス fileName からファイルを読み込み、QImage オブジェクトを生成します。 ローダーは指定したフォーマット format を使用して画像の読み込みを試みます。 フォーマットが指定されていない場合(デフォルト)、ローダーはファイルのヘッダーから画像フォーマットの推測を試みます。 読み込みが失敗した場合、空の QImage オブジェクトを生成します。 ファイル名はディスク上にある実際のファイルまたはアプリケーションに埋め込まれたリソースを指定できます。 //"C \\qt.png"から読み込むQImage image("C \\qt.png"); コピーコンストラクター QImage QImage(const QImage image) ムーブコンストラクター QImage QImage(QImage other) デストラクター QImage ~QImage() 画像の大きさ QRect QImage rect() const 画像を囲む長方形 QRect(0, 0, width(), height()) を返します。 int QImage height() const 画像の高さを返します。 int QImage width() const 画像の幅を返します。 QSize QImage size() const 画像の大きさ QSize(width(), height()) を返します。 サンプルコード QImage image("C \\qt.png");qDebug() "width " image.width();qDebug() "height " image.height();qDebug() "size " image.size().width() "*" image.size().height();qDebug() "rect (" image.rect().x() "," image.rect().y() ")" image.rect().width() "*" image.rect().height(); 結果 width 172height 205size 172 * 205rect ( 0 , 0 ) 172 * 205 フォーマットを取得する Format QImage format() const 画像のフォーマットを取得します。 bool QImage hasAlphaChannel() const 画像がアルファチャンネルを持つ場合はtrue、そうでない場合はfalseを返します。 bool QImage allGray() const 画像のすべての色がグレースケールの場合はtrue、そうでない場合はfalseを返します。 グレースケールであるとは、画像の赤、緑及び青のコンポーネントの値がすべて等しい場合です。 カラーテーブルがない場合、この関数は時間がかかります。 bool QImage isGrayscale() const 32bpp画像の場合、allGray()と同じになります 8bpp画像の場合、すべてのカラーテーブルのインデックスにおいて color(i) が GRgb(i, i, i) に等しい場合はtrue、そうでない場合はfalseを返します。 サンプルコード QImage image("C \\qt.png");qDebug() "format " (int)image.format();qDebug() "hasAlphaChannel " image.hasAlphaChannel();qDebug() "allGray " image.allGray();qDebug() "isGrayscale " image.isGrayscale();qDebug() "isNull " image.isNull(); 結果 format 5//QImage Format_ARGB32hasAlphaChannel trueallGray falseisGrayscale false QImageオブジェクトの状態 bool QImage isNull() const 空の QImage オブジェクトの場合はtrue、そうでない場合はfalseを返します。 qint64 QImage cacheKey() const QImage オブジェクトのコンテンツを識別する番号を返します 異なる QImage オブジェクトは同じ内容を参照する場合にのみ、同じキーを持ちます。 サンプルコード QImage image("C \\qt.png");qDebug() "isNull " image.isNull();qDebug() "cacheKey " image.cacheKey(); 結果 isNull falsecacheKey 21474836482 バイト数 int QImage byteCount() const 画像のバイト数を返します。 int QImage bytesPerLine() const 画像のスキャンライン中に含まれるバイト数を返します。 この値は byteCount() / height() に等しくなります。 サンプルコード QImage image("C \\qt.png");qDebug() "byteCount " image.byteCount();qDebug() "bytesPerLine " image.bytesPerLine();qDebug() "byteCount() / height() " image.byteCount() / image.height();qDebug() "image.width() * image.height() * 32 / 8 " image.width() * image.height() * 32 / 8; 結果 byteCount 141040bytesPerLine 688byteCount() / height() 688image.width() * image.height() * 32 / 8 141040 ビットプレーン数、ビット深度 int QImage bitPlaneCount() const 画像のビットプレーン数を返します。 ビットプレーン数は各ピクセルの色や透過度の情報のビット数です。 使用しないビットを含む画像フォーマットでは、ビット深度とは同じ値になりません。 int QImage depth() const 画像のビット深度を取得します。 画像のビット深度は一つのピクセルに保存するのに使用できるビット数(bit per pixel)です。 サポートされたビット深度は1、8、16、及び32です。 サンプルコード QImage image("C \\qt.png");qDebug() "bitPlaneCount " image.bitPlaneCount();qDebug() "depth " image.depth(); 結果 bitPlaneCount 32depth 32 dpm、デバイスピクセル比を取得・設定する int QImage dotsPerMeterX() const 水平方向1mあたりに収まるピクセル数(dpm)を返します。 int QImage dotsPerMeterY() const 垂直方向1mあたりに収まるピクセル数(dpm)を返します。 void QImage setDotsPerMeterX(int x) 水平方向1mあたりに収まるピクセル数(dpm)を設定します。 void QImage setDotsPerMeterY(int y) 垂直方向1mあたりに収まるピクセル数(dpm)を設定します。 qreal QImage devicePixelRatio() const 画像のデバイスピクセル比を返します。 通常のディスプレイ環境では1ですが、Retinaディスプレイでは2になります。 void QImage setDevicePixelRatio(qreal scaleFactor) 画像のデバイスピクセル比を設定します。 サンプルコード QImage image("C \\qt.png");qDebug() "dpm x=" image.dotsPerMeterX() "y=" image.dotsPerMeterY();qDebug() "dpi x=" image.dotsPerMeterX() * 0.0254 "y=" image.dotsPerMeterY() * 0.0254;qDebug() "device pixel ratio " image.devicePixelRatio(); 結果 dpm x= 3780 y= 3780dpi x= 96.012 y= 96.012device pixel ratio 1 オフセット(不明) QPoint QImage offset() const void QImage setOffset(const QPoint offset) カラーテーブルを取得・設定する int QImage colorCount() const カラーテーブルの要素数を取得します。 カラーテーブルを使用しない画像フォーマットでは、0を返します。 void QImage setColorCount(int colorCount) カラーテーブルの要素数を変更します。インデックスは0~255の範囲でなければならないことに注意してください。 カラーテーブルを拡張した場合、新たに増えた要素にはqRgba(0, 0, 0, 0)が設定されます。 QVector QRgb QImage colorTable() const カラーテーブルに含まれている色のリストを返します。 カラーテーブルを使用しない画像フォーマットでは、空の QVector QRgb を返します。 void QImage setColorTable(const QVector QRgb colors) カラーインデックスをQRgb値に翻訳するのに使用されるカラーテーブルを設定します。 カラーテーブルはピクセルで使用されるすべてのインデックスを網羅している必要があり、そうでない場合の結果は未定義です。 QRgb QImage color(int i) const カラーテーブルのインデックス i にある色を返します。 カラーテーブルの最初の値はインデックス0です。 void QImage setColor(int index, QRgb colorValue) カラーテーブルのインデックス index の色を colorValue に設定します。インデックスは0~255の範囲でなければならないことに注意してください。 指定したインデックスの値が現在のカラーテーブルの要素外の場合、setColorCount() でカラーテーブルを拡張します。 サンプルコード //インデックス画像作成uchar databuffer[50*50];for(int row = 0; row 50; row++){for(int col = 0; col 50; col++){databuffer[row*50+col] = row;}}QImage image(databuffer,50,50,QImage Format_Indexed8);//カラーテーブル設定for(int i = 0; i 50; i++){image.setColor(i, 0xff000000 + i);}//カラーテーブル表示qDebug() "colorCount " image.colorCount();qDebug() "colorTable ";QVector QRgb color_table = image.colorTable();for(int i = 0; i color_table.size(); i++){qDebug() color_table[i];} 結果 colorCount 50colorTable 4278190080//0xff0000004278190081//0xff000001427819008242781900834278190084427819008542781900864278190087427819008842781900894278190090427819009142781900924278190093427819009442781900954278190096427819009742781900984278190099427819010042781901014278190102427819010342781901044278190105427819010642781901074278190108427819010942781901104278190111427819011242781901134278190114427819011542781901164278190117427819011842781901194278190120427819012142781901224278190123427819012442781901254278190126427819012742781901284278190129 画像のデータソースを取得する uchar * QImage bits() const uchar * QImage bits() const const uchar * QImage constBits() const 最初のピクセルデータのポインタを返します。 この値はscanLine(0)と等しくなります。 uchar * QImage scanLine(int i) const uchar * QImage scanLine(int i) const const uchar * QImage constScanLine(int i) const スキャンラインのインデックス i の最初のピクセルデータのポインタを返します。 スキャンラインの最初のインデックスは0です。 スキャンラインのデータは32bitでアラインメントされています。 フォーマット変換 QImage QImage convertToFormat(Format format, Qt ImageConversionFlags flags = Qt AutoColor) const 指定されたフォーマットで画像のコピーを生成します。 画像変換フラグ flags は画像データを変換処理でどのように扱うかを決定します QImage QImage convertToFormat(Format format, const QVector QRgb colorTable, Qt ImageConversionFlags flags = Qt AutoColor) const カラーテーブル colorTable を使用して、指定されたフォーマットで画像のコピーを生成します。 サンプルコード QImage image("C \\qt.png");QImage converted = image.convertToFormat(QImage Format_Mono); QImage QImage copy(const QRect rectangle = QRect()) const 画像の一部を切り出し、新しい QImage オブジェクトを返します。 元の画像の位置(rectangle.x(), rectangle.y())から、長方形の大きさ分切り出されます。 切り出した際、元の画像の大きさを越える領域のピクセルは0に設定されます。 画像フォーマット 0の意味 32bitのRGB画像 黒を意味 32bitのARGB画像 透明な黒 8bit画像 インデックス0 1bit画像 Qt color0 長方形 rectangle が空の QRect オブジェクトの場合、空の QImage オブジェクトを返します。 QImage QImage copy(int x, int y, int width, int height) const 元の画像の位置(x、 y)からコピーされ、幅 width 及び高さ height の大きさ分切り出されます。 切り出した際、元の画像の大きさを越える領域のピクセルは0に設定されます。 サンプルコード QImage image("C \\qt.png");//位置(50, 50)から100*100をトリミングQImage cut1 = image.copy(QRect(50,50,100,100));//位置(50, 50)から300*300をトリミングQImage cut2 = image.copy(QRect(50,50,300,300)); マスクを生成する QImage QImage createAlphaMask(Qt ImageConversionFlags flags = Qt AutoColor) const 画像のアルファバッファを取得し、新しい QImage オブジェクトで返します。 画像フォーマットがQImage Format_RGB32の場合、空の QImage オブジェクトを返します。 フラグ flag でQt ImageConversionFlagsのビットフラグを設定することにより、変換処理をコントロールできます。 flagsに0を渡すとデフォルト設定になります。 返された QImage オブジェクトはリトルエンディアンオーダー(QImage Format_MonoLSB)です。 convertToFormat() 関数を使用してビッグエンディアンオーダー(QImage Format_Mono)に変換できます。 QImage image("C \\qt.png");QImage alpha = image.alphaChannel(); QImage QImage createHeuristicMask(bool clipTight = true) const 画像のヒューリスティックマスクを取得し、新しい QImage オブジェクトで返します。 サンプルコード QImage image("C \\qt.png");QImage heuristic = image.createHeuristicMask(); QImage QImage createMaskFromColor(QRgb color, Qt MaskMode mode = Qt MaskInColor) const 色 color の値でマスクを生成し、新しい QImage オブジェクトで返します。 モード mode が Qt MaskInColor(デフォルト値) の場合、指定した色にマッチするすべてのピクセルを不透明なピクセルにします。 モード mode が Qt MaskOutColor の場合、指定した色にマッチするすべてのピクセルを透明なピクセルにします。 サンプルコード QImage image("C \\qt.png");QImage mask1 = image.createMaskFromColor(0xFFFFFFFF, Qt MaskInColor);QImage mask2 = image.createMaskFromColor(0xFFFFFFFF, Qt MaskOutColor); ピクセルの色を取得・設定する QRgb QImage pixel(const QPoint position) const 位置 position にあるピクセルの色を返します。 位置が有効でない場合、結果は未定義です。 QRgb QImage pixel(int x, int y) const 位置 (x, y)にあるピクセルの色を返します。 位置が有効でない場合、結果は未定義です。 サンプルコード QImage image("C \\qt.png");qDebug() "(50, 50)" QString number(image.pixel(QPoint(50, 50)),16).toUpper();qDebug() "(30, 30)" QString number(image.pixel(30, 30),16).toUpper(); 結果 (50, 50) "FF20782C"(30, 30) "FF7CC040" void QImage setPixel(const QPoint position, uint index_or_rgb) 位置 position にあるピクセルに色 index_or_rgb を設定します。 モノクロ画像または8bpp Indexed画像の場合は、index_or_rgb にはインデックスを設定します。 そうでない場合は、QRgb値を設定します。 位置が有効でない場合または画像がモノクロ画像や8bpp Indexed画像であり index_or_rgb = colorCount() である場合、結果は未定義です。 void QImage setPixel(int x, int y, uint index_or_rgb) 位置(x, y)にあるピクセルの色を設定します。 モノクロ画像または8bppIndexed画像の場合は、index_or_rgb にはインデックスを設定します。 そうでない場合は、QRgb値を設定します。 位置が有効でない場合または画像がモノクロ画像や8bpp Indexed画像であり index_or_rgb = colorCount() である場合、結果は未定義です。 int QImage pixelIndex(const QPoint position) const 位置 position にあるピクセルの色のインデックスを取得します。 位置が有効でない場合または画像が8bpp Indexed画像でない場合、結果は未定義です。 int QImage pixelIndex(int x, int y) const 位置(x, y)にあるピクセルの色のインデックスを取得します。 位置が有効でない場合または画像が8bpp Indexed画像でない場合、結果は未定義です。 ピクセル操作 void QImage invertPixels(InvertMode mode = InvertRgb) 画像のすべてのピクセルを反転させます。 モード mode は画像のビット深度が32の場合のみ意味を持ちます。 モードが QImage InvertRgb の場合(デフォルト設定)、アルファチャンネルは反転しないままにします。 モードが QImage InvertRgba の場合、アルファチャンネルも反転させます。 8bpp Indexed画像を反転させると、あるピクセルがインデックス i の色を使用する場合、インデックス(255-i)の色を使用するように変換します。1bpp画像でも同様です。カラーテーブル自体は変更されません。 サンプルコード QImage image("C \\qt.png");QImage invert1("C \\qt.png");QImage invert2("C \\qt.png");invert1.invertPixels(QImage InvertRgb);invert2.invertPixels(QImage InvertRgba); void QImage fill(uint pixelValue) ? void QImage fill(Qt GlobalColor color) 色 color ですべてのピクセルを埋めます。 void QImage fill(const QColor color) 色 color ですべてのピクセルを埋めます。 サンプルコード QImage image(100, 100, QImage Format_ARGB32);image.fill(Qt darkRed);image.fill(QColor(255,0,0)); 画像を反転させる QImage QImage mirrored(bool horizontal = false, bool vertical = true) const 画像を反転させ、新しい QImage オブジェクトで返します。 vertical = true を設定すると水平方向が反転します。 horizontal = false を設定すると垂直方向が反転します。 画像を読み込む QImage QImage fromData(const uchar * data, int size, const char * format = 0) [static] QImage QImage fromData(const QByteArray data, const char * format = 0) [static] メモリバッファー data の先頭から size バイト分より QImage オブジェクトを生成し、返します。 ローダーは指定した画像フォーマット(PNGなど) format を使用して画像を読み込みを試みます。 画像フォーマットが指定されていない場合(デフォルト)、ローダーはファイルのヘッダーから画像フォーマットの推測を試みます。 読み込みが失敗した場合、空の QImage オブジェクトを返します。 bool QImage load(const QString fileName, const char * format = 0) bool QImage load(QIODevice * device, const char * format) ファイルパス fileName のファイルから画像を読み込みます。 ローダーは指定した画像フォーマット(PNGなど) format を使用して画像を読み込みを試みます。 画像フォーマットが指定されていない場合(デフォルト)、ローダーはファイルのヘッダーから画像フォーマットの推測を試みます。 成功した場合はtrue、そうでない場合は画像を無効にし、falseを返します。 bool QImage loadFromData(const uchar * data, int len, const char * format = 0) bool QImage loadFromData(const QByteArray data, const char * format = 0) メモリバッファー data の先頭から size バイト分を画像として読み込みます。 ローダーは指定した画像フォーマット(PNGなど) format を使用して画像を読み込みを試みます。 画像フォーマットが指定されていない場合(デフォルト)、ローダーはファイルのヘッダーから画像フォーマットの推測を試みます。 成功した場合はtrue、そうでない場合は画像を無効にし、falseを返します。 画像を保存する bool QImage save(const QString fileName, const char * format = 0, int quality = -1) const bool QImage save(QIODevice * device, const char * format = 0, int quality = -1) const 画像フォーマット format 及び品質因子 q を使用して、画像をファイル fileName に保存します。 画像フォーマットが指定されていない場合、ファイル名の拡張子から画像フォーマットの推測を試みます。 品質因子は0~100または-1の値でなければなりません。0は圧縮されたファイルを表し、100は圧縮されていないファイルを表します。 1(デフォルト値)はデフォルト設定を使用します。 成功した場合はtrue、そうでない場合は画像を無効にし、falseを返します。 画像を縮小拡大する QImage QImage scaled(const QSize size, Qt AspectRatioMode aspectRatioMode = Qt IgnoreAspectRatio, Qt TransformationMode transformMode = Qt FastTransformation) const aspectRatioMode 及び transformMode に従い、大きさ size で定義された長方形に画像をリサイズし、新しい QImage オブジェクトを返します。 aspectRatioMode = Qt IgnoreAspectRatio では大きさ size で定義された長方形に画像をリサイズします。 aspectRatioMode = Qt KeepAspectRatio ではアスペクト比を保存した状態で、大きさ size で定義された長方形に収まる最も大きい長方形に画像をリサイズします。 aspectRatioMode = Qt KeepAspectRatioByExpanding ではアスペクト比を保存した状態で、大きさ size で定義された長方形を覆う最も大きい長方形に画像をリサイズします。 size が空の QSize オブジェクトの場合は、空の QImage オブジェクトを返します。 QImage QImage scaled(int width, int height, Qt AspectRatioMode aspectRatioMode = Qt IgnoreAspectRatio, Qt TransformationMode transformMode = Qt FastTransformation) const aspectRatioMode 及び transformMode に従い、幅 width 高さ height で定義された長方形に画像をリサイズし、新しい QImage オブジェクトを返します。 QImage QImage scaledToHeight(int height, Qt TransformationMode mode = Qt FastTransformation) const transformMode に従い、高さ height に画像をリサイズし、新しい QImage オブジェクトを返します。 この関数は横幅を自動的に計算するため、アスペクト比は保存されます。 height の値が0または負の値の場合、空の QImage オブジェクトを返します。 QImage QImage scaledToWidth(int width, Qt TransformationMode mode = Qt FastTransformation) const transformMode に従い、高さ width に画像をリサイズし、新しい QImage オブジェクトを返します。 この関数は横幅を自動的に計算するため、アスペクト比は保存されます。 height の値が0または負の値の場合、空の QImage オブジェクトを返します。 位置が有効かどうか調べる bool QImage valid(const QPoint pos) const 位置 pos が画像内の有効な座標の場合はtrue、そうでない場合はfalseを返します。 bool QImage valid(int x, int y) const 位置 (x, y) が画像内の有効な座標の場合はtrue、そうでない場合はfalseを返します。 RGB画像をBGR画像に変換する QImage QImage rgbSwapped() const すべてのピクセルの青と赤の要素を入れ替え、 RGB画像をBGR画像に変換するのに利用できます。 画像の埋め込むテキストを取得・設定する QString QImage text(const QString key = QString()) const キー key に関連付けられたテキストを返します。 key が空の値の場合、キーとテキストのペアを改行で区切りすべて返します。 void QImage setText(const QString key, const QString text) テキスト text を画像のテキストに設定し、キー key と関連付けます。 画像にテキストを一つしか設定しない場合は、key には空の文字列または"Description"などの一般的な値を設定できます。 画像のテキストは save() または QImageWriter write() を呼び出して保存した際、画像データに埋め込まれます。 QStringList QImage textKeys() const 画像のテキストのキーリストを返します。 オブジェクトの中身を交換 void QImage swap(QImage other) 本QImage オブジェクトと QImage オブジェクト other を入れ替えます。 変換行列を使用して画像を変換する QImage QImage transformed(const QMatrix matrix, Qt TransformationMode mode = Qt FastTransformation) const 変換行列 matrix 及び変換モード mode に従って画像を変換し、新しいQImageオブジェクトで返します。 QImage QImage transformed(const QTransform matrix, Qt TransformationMode mode = Qt FastTransformation) const 変換行列 matrix 及び変換モード mode に従って画像を変換し、新しいQImageオブジェクトで返します。 QMatrix QImage trueMatrix(const QMatrix matrix, int width, int height) [static] QTransform QImage trueMatrix(const QTransform matrix, int width, int height) [static] 演算子オーバーロード QImage operator QVariant() const bool QImage operator!=(const QImage image) const QImage QImage operator=(const QImage image) QImage QImage operator=(QImage other) bool QImage operator==(const QImage image) const その他 typedef QImageCleanupFunction void myImageCleanupHandler(void *info) QDataStream operator (QDataStream stream, const QImage image) |QDataStream operator (QDataStream stream, QImage image)
https://w.atwiki.jp/dslua/pages/34.html
フォルダ「simple blit, stylus and keys」 ソース img = Image.load("man.png", VRAM) x = 10 y = 10 while not Keys.newPress.Start do Controls.read() if Stylus.held then x = Stylus.X y = Stylus.Y end if Keys.held.Up then y = y + 2 end if Keys.held.Down then y = y - 2 end if Keys.held.Right then x = x + 2 end if Keys.held.Left then x = x - 2 end startDrawing() screen.blit(SCREEN_DOWN, x, y, img) screen.print(SCREEN_UP, 0, 0, "Use the stylus or + to move the man") screen.print(SCREEN_UP, 0, 8, "Press START to quit") screen.print(SCREEN_UP, 0, 184, "FPS "..NB_FPS) stopDrawing() end Image.destroy(img) img = nil x = nil y = nil 使用している画像 man.png 実行結果 フォルダ「sprite and keys」 ソース spr = Sprite.new("sprite.png", 24, 32, VRAM) spr addAnimation({0,1,2,1}, 300) -- Walk up spr addAnimation({3,4,5,4}, 300) -- Walk right spr addAnimation({6,7,8,7}, 300) -- Walk down spr addAnimation({9,10,11,10}, 300) -- Walk left x = 150 y = 80 direction = 1 while not Keys.newPress.Start do Controls.read() startDrawing() spr playAnimation(SCREEN_DOWN, x, y, direction) if Keys.held.Up then direction = 1 y = y - 1 end if Keys.held.Right then direction = 2 x = x + 1 end if Keys.held.Down then direction = 3 y = y + 1 end if Keys.held.Left then direction = 4 x = x - 1 end screen.print(SCREEN_UP, 0, 184, "FPS "..NB_FPS) screen.print(SCREEN_UP, 0, 0, "Press START to quit") stopDrawing() end spr destroy() spr = nil x = nil y = nil direction = nil 使用している画像 sprite.png 実行結果
https://w.atwiki.jp/appwiki/pages/26.html
UIImageクラスは、画像データを管理するクラスであり、背景、ボタン内などに画像を表示する場合、画像データUIImageオブジェクトとしてから、UIImageViewなどでUIImageクラスのデータを使い、画像を表示させることが出来ます。 参考:UIImageの切り取り, UIImageのリサイズ(拡大/縮小) UIImageの宣言 // 画像ファイル名を指定したUIImageの生成例UIImage *image = [UIImage imageNamed @"hoge.png"]; 主要なプロパティ CGImage Quartzイメージのデータを返す。 ※読み取りのみ 例)CGImageRef imageRef = [image CGImage]; imageOrientation レシーバのイメージの向きを返す。 ※読み取りのみ 例)UIImageOrientation imageOrient = image.imageOrientation; イメージの向き UIImageOrientationUp 基本 UIImageOrientationDown 180度回転 UIImageOrientationLeft 90度左に回転 UIImageOrientationRight 90度右に回転 UIImageOrientationUpMirrored 反転 UIImageOrientationDownMirrored 反転して180度回転 UIImageOrientationLeftMirrored 反転して90度左に回転 UIImageOrientationRightMirrored 反転して90度右に回転 size 対象のイメージのサイズ(幅)を返す。 ※読み取りのみ 例)CGSize imageSize = image.size; 主要なクラスメソッド imageNamed + (UIImage *)imageNamed (NSString *)name 引数に指定されたファイル名のイメージオブジェクトを作成 例)UIImage *image = [UIImage imageNamed @"hoge.png"]; imageWithCGImage + (UIImage *)imageWithCGImage (CGImageRef)cgImage 引数に指定されたQuartzイメージのオブジェクトを作成 例)UIImage *image = [UIImage imageWithCGImage imageRef]; imageWithContentsOfFile + (UIImage *)imageWithContentsOfFile (NSString *)path 引数に指定されたファイルパスのイメージをロードし、そのイメージオブジェクトを作成 例)UIImage *image = [UIImage imageWithContentsOfFile [[NSBundle mainBundle] pathForResource @"hoge" ofType @"png"]]; imageWithData + (UIImage *)imageWithData (NSData *)data 引数に指定されたイメージデータを使用し、イメージオブジェクトを作成 例)UIImage *image = [UIImage imageWithData imageData]; 主要なインスタンスメソッド drawAtPoint - (void)drawAtPoint (CGPoint)point 引数に指定された座標で現在のコンテキストを描画する 例)[image drawAtPoint CGPointMake(100,100)]; initWithCGImage - (id)initWithCGImage (CGImageRef)CGImage 引数に指定されたQuartzイメージでオブジェクトを初期化 例)UIImage *image = [[UIImage alloc] initWithCGImage cgImage]; initWithContentsOfFile - (id)initWithContentsOfFile (NSString *)path 引数で指定したファイルパスのイメージをロードし、オブジェクトを初期化 例)UIImage *image = [UIImage initWithContentsOfFile [[NSBundle mainBundle] pathForResource @"hoge" ofType @"png"]]; initWithData - (id)initWithData (NSData *)data 引数で指定したイメージデータを使用し、オブジェクトを初期化 例)UIImage *image = [UIImage initWithData imageData];
https://w.atwiki.jp/mynote/pages/13.html
困ったらここを見ろ! http //www.imagemagick.org/script/index.php http //www.imagemagick.org/script/command-line-options.php#delay http //mechanics.civil.tohoku.ac.jp/soft/node43.html http //www.ne.jp/asahi/tokyo/shin/linux/desktop/imagemagick.html convertのTips http //www.imagemagick.org/www/convert.html#opti IBM様のページ http //www-06.ibm.com/jp/developerworks/opensource/060224/j_os-mosaic.shtml http //www.bekkoame.ne.jp/~ponpoko/Linux/etc/LinuxTIPS.html 俺メモ mogrify -format gif *.eps mogrify -quality 100 -density 150 -format jpg Eevx0100.eps //-qualityはデフォルト75少し奇麗になる?-densityはデフォ75サイズが大きくなるだけだからあまり意味無し convert -crop 70%+150+80 acip.gif acip.gif //zalesack map setting convert -quality 100 acip_*.gif acip_all.mpeg convert +append crop1.gif crop2.gif append.gif //+appendで横に結合、-appendで縦に結合 crop width x height {+,-} xoffset {+,-} y offset クロッピング.%指定可能.offsetは左上が+0+0.%指定時はoffset指定無効. conver -crop 50% magick1.gif magick-crop.gif conver -crop 50x50+0+20 magick1.gif magick-crop2.gif たいていシミュレーションの可視化をGnuplotでやった後はEPSファイルで出力しているから $ mogrify -format gif *.eps $ convert -loop 0 -delay 10 *.gif anim.gif [-loop 0]で無限ループだから使わない方がいい ImageMagickはPhotoShopやGIMPのような統一されたインタフェースは持たず、機能の異なるコマンド群により構成されている。「display」はそのコマンドの1つで、引数に与えたファイルを画面に表示するビューワとしての機能を持つ。引数を省略した場合には、イメージキャラクタの魔法使いのイラストが表示されるはずだ。 $ display flowers.jpg 表示された画面をクリックすると、[File]や[Edit]などの項目を備えたメニューバーが表示される。画像の回転や切り取り、サイズの拡大/縮小などの基本的な作業のほか、エンボスやブラーなどの特殊効果を加えることもできる。 なお、「display Unable to open X server ()」と表示された場合には、X11.appが起動されていることを確認すること。また、X11.appとともに起動されるxtermからではなく Terminal.appから起動する場合には、DISPLAY環境変数が定義されていること(ex. export DISPLAY=localhost 0.0)を確認してみよう。 「convert」で画像を編集 ImageMagickの長所は、なんといっても"複数の画像処理を同時に実行できる"ところにある。「convert」はその役割を担う、特に利用価値の高いコマンドだ。膨大な数が用意されたオプションの用法は「man convert」で調べていただくとして、ここでは2つほど実例を紹介してみよう。 以下に示す例では、画像のリサイズとフォーマット変換を同時に処理している。サイズは「-resize」オプションに続けて縦x横のピクセル数、または「50%」のように比率を示せばいい。フォーマット種は拡張子により自動的に判定されるため、JPEGならば「.jpg」、TIFFならば「.tif」の要領で指定すればOK。 $ convert -resize 640x480 before.JPG after.png convertコマンドを利用すれば、アニメーションGIFも簡単に作成できる。以下の実行例では、連番のGIFファイル(sozai1〜10.gif)を素材とし、10ミリ秒間隔で無限に画像を切り替える「anim.gif」を作成している。 $ convert -loop 0 -delay 10 sozai*.gif animated.gif 他にもいろいろ (2007.01.25)どうやらmpeg変換も出来るらしい、凄いよImageMagick...でもffmpegインストールしちゃったよ、ちなみにmpegへのコンバートは $convert -delay 10 *.png test.mpeg (2007.02.02)convertでmpegにしたときどうも画質が落ちると思ったら、qualityというオプションがあった。 $convert -quality 100 -delay 40 *.png test5.mpeg convert でEPS、gifファイル等の一部分を切り抜きたいとき -crop width x height {+,-} xoffset {+,-} y offset クロッピング.%指定可能.offsetは左上が+0+0.%指定時はoffset指定無効. conver -crop 50% magick1.gif magick-crop.gif conver -crop 50x50+0+20 magick1.gif magick-crop2.gif 参照 http //www1.linkclub.or.jp/~zhidao/zlab/computing/mpegencode.html ImageMagickには他にも便利なコマンドが用意されている。たとえば、カレントディレクトリにあるすべてのJPEGファイルを20%に縮小したうえでPNGに変換するには、以下のとおり「mogrify」コマンドを実行する。使用できるオプションはconvertとほぼ同じだが、複数のファイルを対象にできる点が特徴だ。他にも「montage」などユニークなコマンドが用意されているので、「man ImageMagick」で調べてみよう。 $ mogrify -resize 20% -format png *.JPG 以下で成功 utmcc000 ~/Desktop SaitouDaisuke$ tar xvzf mpeg2vidcodec_v12.tar.gz mpeg2/ mpeg2/src/ mpeg2/src/mpeg2enc/ mpeg2/src/mpeg2enc/config.h mpeg2/src/mpeg2enc/mpeg2enc.h mpeg2/src/mpeg2enc/putbits.c mpeg2/src/mpeg2enc/putmpg.c mpeg2/src/mpeg2enc/puthdr.c mpeg2/src/mpeg2enc/vlc.h mpeg2/src/mpeg2enc/fdctref.c mpeg2/src/mpeg2enc/writepic.c mpeg2/src/mpeg2enc/putvlc.c mpeg2/src/mpeg2enc/stats.c mpeg2/src/mpeg2enc/transfrm.c mpeg2/src/mpeg2enc/quantize.c mpeg2/src/mpeg2enc/readpic.c mpeg2/src/mpeg2enc/motion.c mpeg2/src/mpeg2enc/predict.c mpeg2/src/mpeg2enc/idct.c mpeg2/src/mpeg2enc/putseq.c mpeg2/src/mpeg2enc/mpeg2enc.c mpeg2/src/mpeg2enc/putpic.c mpeg2/src/mpeg2enc/ratectl.c mpeg2/src/mpeg2enc/conform.c mpeg2/src/mpeg2enc/global.h mpeg2/src/mpeg2enc/Makefile mpeg2/src/mpeg2enc/Makefile.wat mpeg2/src/mpeg2enc/CHANGES mpeg2/src/mpeg2enc/TODO mpeg2/src/mpeg2dec/ mpeg2/src/mpeg2dec/CHANGES mpeg2/src/mpeg2dec/EXAMPLES mpeg2/src/mpeg2dec/IEEE1180 mpeg2/src/mpeg2dec/Makefile mpeg2/src/mpeg2dec/README mpeg2/src/mpeg2dec/SPATIAL.DOC mpeg2/src/mpeg2dec/TODO mpeg2/src/mpeg2dec/config.h mpeg2/src/mpeg2dec/display.c mpeg2/src/mpeg2dec/getbits.c mpeg2/src/mpeg2dec/getblk.c mpeg2/src/mpeg2dec/gethdr.c mpeg2/src/mpeg2dec/getpic.c mpeg2/src/mpeg2dec/getvlc.c mpeg2/src/mpeg2dec/getvlc.h mpeg2/src/mpeg2dec/global.h mpeg2/src/mpeg2dec/idct.c mpeg2/src/mpeg2dec/idctref.c mpeg2/src/mpeg2dec/motion.c mpeg2/src/mpeg2dec/mpeg2dec.c mpeg2/src/mpeg2dec/mpeg2dec.h mpeg2/src/mpeg2dec/recon.c mpeg2/src/mpeg2dec/spatscal.c mpeg2/src/mpeg2dec/store.c mpeg2/src/mpeg2dec/subspic.c mpeg2/src/mpeg2dec/systems.c mpeg2/src/mpeg2dec/test.m2v mpeg2/src/mpeg2dec/verify.c mpeg2/par/ mpeg2/par/intra.mat mpeg2/par/inter.mat mpeg2/par/PAL.par mpeg2/par/MPEG-1.par mpeg2/par/NTSC.par mpeg2/doc/ mpeg2/doc/mpeg2enc.doc mpeg2/doc/m2d_old.doc mpeg2/doc/BUGS mpeg2/doc/ARCHITECTURE mpeg2/README mpeg2/Makefile mpeg2/verify/ mpeg2/verify/test.par mpeg2/verify/test1.U mpeg2/verify/test1.V mpeg2/verify/test1.Y mpeg2/verify/test2.U mpeg2/verify/test2.V mpeg2/verify/test2.Y mpeg2/verify/test0.V mpeg2/verify/test0.U mpeg2/verify/verify mpeg2/verify/test.m2v mpeg2/verify/recon1.Y mpeg2/verify/recon1.U mpeg2/verify/recon1.V mpeg2/verify/test0.Y mpeg2/verify/recon0.V mpeg2/verify/recon2.Y mpeg2/verify/recon2.U mpeg2/verify/recon2.V mpeg2/verify/recon0.Y mpeg2/verify/recon0.U mpeg2/verify/README yama ~/programs/povray/anime macmini$ convert 1anites*.png anime.gif yama ~/programs/povray/anime macmini$ ls 1anime.pov 1anites10.png 1anites21.png 1anites32.png 1anites43.png 1anites54.png 1anites.pov 1anites11.png 1anites22.png 1anites33.png 1anites44.png 1anites55.png 1anites01.png 1anites12.png 1anites23.png 1anites34.png 1anites45.png 1anites56.png 1anites02.png 1anites13.png 1anites24.png 1anites35.png 1anites46.png 1anites57.png 1anites03.png 1anites14.png 1anites25.png 1anites36.png 1anites47.png 1anites58.png 1anites04.png 1anites15.png 1anites26.png 1anites37.png 1anites48.png 1anites59.png 1anites05.png 1anites16.png 1anites27.png 1anites38.png 1anites49.png 1anites60.png 1anites06.png 1anites17.png 1anites28.png 1anites39.png 1anites50.png anime.gif 1anites07.png 1anites18.png 1anites29.png 1anites40.png 1anites51.png 1anites08.png 1anites19.png 1anites30.png 1anites41.png 1anites52.png 1anites09.png 1anites20.png 1anites31.png 1anites42.png 1anites53.png
https://w.atwiki.jp/sphereofapostles/pages/31.html
トップページに戻る _image This page is for site design only. DO NOT edit this page except the administrator. Thank you.