No.1ベストアンサー
- 回答日時:
できますよ。
ただし、画像の並べ方(縦、横、その他)、それぞれの画像のサイズが異なる場合の対処法(伸ばす縮める切取るその他)など考えなきゃならない点が色々ありますし、その仕様によって当然コードも変ってきます。
とりあえず、
2枚の画像を横に並べる。
その際、2枚目の画像のサイズは1枚目と同じ高さになるよう変換する。
これだとこんな感じ。
Graphics::TBitmap* b1 = new Graphics::TBitmap;
Graphics::TBitmap* b2 = new Graphics::TBitmap;
Graphics::TBitmap* b3 = new Graphics::TBitmap;
b1->LoadFromFile( "file1.bmp" );
b2->LoadFromFile( "file2.bmp" );
int stretched_width = b1->Height == b2->Height ?
b2->Width : b2->Width * b1->Height / b2->Height;
b3->Height = b1->Height;
b3->Width = b1->Width + stretched_width;
b3->Canvas->Draw( 0, 0, b1 );
b3->Canvas->StretchDraw(
TRect( b1->Width, 0, b1->Width + stretched_width, b1->Height ),
b2
);
b3->SaveToFile( "save.bmp" );
delete b1;
delete b2;
delete b3;
あとはご自分の考える仕様に適合するように手直ししてください。
この回答への補足
ご回答ありがとうございます。
教えて頂いた方法で横に並べて表示と縦に並べて表示が出来るようになりました。(この2つの表示をしたかったので)
ありがとうございます。
操作をする上で1点わからない部分がありますのでもしご存知でしたら教えて下さい。
下記に例を交えて質問させて頂きます。
例:
b1の画像サイズが幅1000、縦500
b2の画像サイズが幅200縦500(文字が表示されている画像)
この画像を横に並べて表示する際、
(1)b1から先にb3に表示し、b2を表示した時
(2)b2から先にb3に表示し、b1を表示した時
(1)の場合保存した画像のb2に表示されている画像の文字列が殆ど見えない状態で保存されておりました。
(2)の場合保存した画像のb2の文字列は見える状態になっておりました。いったい何が原因なのかわからない状態です。
画像サイズは(1)の方が(2)より小さくなっておりました。
もしかしてそれが原因なのでしょうか?
それを対処する方法は無いのでしょうか?
大変申し訳ございませんがよろしくお願い致します。
No.3
- 回答日時:
No.2補足のソースコードはNo.1補足のトラブルが発生したソースコードですか?
No.2補足のソースコードは取り立てて問題になる点はないようですが。
まぁ、
>map3->Canvas->StretchDraw(
>TRect( map1->Width+10, 0, map1->Width + stretched_width, map1->Height ), map2);
2つの画像の間に10ピクセルのマージンをとりながらmap3の幅を補正してない、TRectの第3引数(map1->Width + stretched_width)を補正してない点が気になりますが。
これが原因で文字が崩れるのかな?
ご回答ありがとうございます。
No.2補足のソースコードはNo.1補足のトラブルが発生したソースコードですか?
⇒そうです。No2.の補足のソースコードはトラブルが発生したソースコードです。
ご指摘頂いた点を修正して確認しても同様の問題が発生しておりました・・・。
しかし、いろいろ試してみた結果以前は文字が表示された画像の方の幅を画像ファイルの幅に合わせていたのですが、文字が表示されている画像の幅を
固定にして行ったところ問題は解決しました。
とりあえずはこの方法で進めていくつもりです。
ありがとうございました。
いつも助けて頂き感謝しております。
No.2
- 回答日時:
トラブルに関する質問は必ずソースコードを提示してください。
ソースコードを見ないと何も分かりません。No.1のサンプルソースで単純に1枚目と2枚目の画像を入れ替えた場合、画像の高さが同じであれば、連結後のサイズは変らないはずなんですが。
ご回答ありがとうございます。
連絡が遅くなりまして大変申し訳ございませんでした。
ご指摘頂いた通り下記に作成したソースコードを添付致します。
処理は2枚の画像を横に並べるのと縦に並べるの2パターンの処理を
行う関数を作成致しております。
もし問題がございましたらご教示お願い致します。
/*ここから作成した関数*/
void TForm3::image_data_uniting(Graphics::TBitmap *map1, Graphics::TBitmap *map2, Graphics::TBitmap *map3, int houkou)
{
int stretched_width;
int stretched_height;
if(houkou == 1) /* 横に並べる場合 */
{
stretched_width = map1->Height == map2->Height ? map2->Width : map2->Width * map1->Height / map2->Height;
map3->Height = map1->Height;
map3->Width = map1->Width + stretched_width;
map3->Canvas->Draw( 0, 0, map1 );
map3->Canvas->StretchDraw(
TRect( map1->Width+10, 0, map1->Width + stretched_width, map1->Height ), map2);
map3->SaveToFile("save.bmp");
}
else /* 縦に並べる場合 */
{
stretched_height = map1->Width == map2->Width ? map2->Height : map2->Height * map1->Width / map2->Width;
map3->Width = map1->Width;
map3->Height = map1->Height + stretched_height;
map3->Canvas->Draw( 0, 0, map1 );
map3->Canvas->StretchDraw(
TRect( 0, map1->Height+5, map1->Width, map1->Height+stretched_height), map2);
map3->SaveToFile("save.bmp");
}
}
/*ここまで*/
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- C言語・C++・C# C言語の質問です。バイナリ形式で保存されたWindows Bitmap形式の画像ファイルを読み込み、 3 2023/07/19 14:58
- Excel(エクセル) VBAで複数のExcelを1つのExcelにまとめる 1 2022/09/04 11:08
- Photoshop(フォトショップ) Photoshopの画像が重すぎるので軽くしたいです 7 2022/05/13 20:13
- Excel(エクセル) 【マクロ】フォルダを2つのモニターの定位置に並べたい 2 2022/09/02 01:14
- HTML・CSS 画像が分割されて切り替わる、ループアニメーションが作りたい 7 2023/05/27 17:12
- その他(開発・運用・管理) フォルダの中にファルダを作成してファイルを格納するバッチコマンド 1 2022/06/30 11:39
- 数学 a(n-k)=(1/n!)lim_{z->c}(d/dz)^n{f(z)(z-c)^k}を k=1と 11 2023/01/27 21:20
- Excel(エクセル) ある数値に対して、値を返す数式についてです 2 2022/09/13 22:06
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UWSC「画像が無い場合」
-
uwscについて質問です。
-
UWSC 画像判定と条件分岐について
-
uwscの画像認識に失敗します。
-
UWSCの画像認識と条件分岐につ...
-
画像のピクセルデータの取得
-
jqueryスライダーを2段でスライ...
-
UWSC 画像認識で条件分岐
-
C++Builder5で画像の結合
-
UWSCでループ処理がうまくいき...
-
画像のビット数を変更する方法
-
uwcs のマクロで画像認識をして...
-
画像の輝度値のプログラムにつ...
-
EXCEL VBA 複数のImageコントロ...
-
vb.net 画像の透過について
-
【WPF】画像の切り替え
-
HTMLでサイトの模写をしていま...
-
UWSCで次のように処理したいの...
-
画像認識アルゴリズムについて
-
UWSCの色判定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【EXCEL VBA】ダブルクリックで...
-
背景画像の繰り返しについて
-
EXCEL VBA 複数のImageコントロ...
-
「using Windows」でエラーが出る
-
jqueryスライダーを2段でスライ...
-
画像のピクセルデータの取得
-
ImageMagickでgif画像の一部が...
-
Excel ユーザーフォームで表示...
-
uwcs のマクロで画像認識をして...
-
uwscの画像認識に失敗します。
-
vb.net 画像の透過について
-
VBA シート毎に画像挿入
-
UWSC 画像判定と条件分岐について
-
UWSC「画像が無い場合」
-
gif 画像上の ボタンに リン...
-
Pythonでgif画像が上手く作れない
-
VBAのユーザーフォームのイメー...
-
UWSC 画像認識で条件分岐
-
パネルに画像
-
【WPF】画像の切り替え
おすすめ情報