🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: fj.lang.visualbasic
7 messages
7 total messages Started by Fujifuru Thu, 22 Jan 1998 00:00
[Q]ビットマップの回転(Rotation)どうやる?
#823
Author: Fujifuru
Date: Thu, 22 Jan 1998 00:00
11 lines
1158 bytes
ふじふる(zippo@ainet.or.jp)です。
VB5エンタープライズ版で、ExcelをOLEで操作して作表し、クリップボード経由でピ
クチャーボックスに表を取り込みました。その画像を以下のように操作したいので
す。
①白黒画像にしたい。
②右に90度回転させたい。
③拡大したい。
基本的には上記のすべてを行って、BMPファイルに保存したのですが。BMPファイル化
は出来ますが、上記の方法が分かりません。API、OLE等いかなる手段も問いませんの
で①~③のいずれか、または全てを教えてください。
Re: [Q]ビットマップの回転(Rotation)どうやる?
#829
Author: AKIYA Saburou
Date: Fri, 23 Jan 1998 00:00
32 lines
1691 bytes
穐谷(あきや)と申します。

Fujifuru <zippo@super.win.or.jp> wrote in article
<6a7mi7$8e6$1@saint.win.or.jp>...
> VB5エンタープライズ版で、ExcelをOLEで操作して作表し、クリップボード
> 経由でピクチャーボックスに表を取り込みました。その画像を以下のように
> 操作したいのです。
> ①白黒画像にしたい。

PictureBox.PaintPictureメソッドに適切なラスタオペコードを指定して
描画するとか。
	反転して描画。
	真っ黒のものと合成(And)。
	反転して描画。
で出来ると思います。

> ②右に90度回転させたい。

これは、95では、「ピクセル毎に色を取得して描画」を行なうしかなかったと
思います。
NTだったら、API関数のSetWorldTransform(だったかな?)を使ってから
自分で作成したMemDCに描画すればいいのですけど。


> ③拡大したい。

PictureBox.PaintPictureメソッドで、適切に引数を設定して下さい。

--------------------------------------------------------
		差出人:	穐谷 三郎
		E-Mail:	akiya@cmpk.or.jp
Re: [Q]ビットマップの回転(Rotation)どうやる?
#830
Author: AKIYA Saburou
Date: Fri, 23 Jan 1998 00:00
20 lines
1200 bytes
穐谷(あきや)です。

訂正です。

AKIYA Saburou <akiya@cmpk.or.jp> wrote in article
<6a9mme$m25@rorty.mim.co.jp>...
> > ①白黒画像にしたい。
> PictureBox.PaintPictureメソッドに適切なラスタオペコードを指定して
> 描画するとか。
> 	反転して描画。
> 	真っ黒のものと合成(And)。

ここは、「真っ白のものと合成」です。

でも、これではできないかもしれませんね。

--------------------------------------------------------
		差出人:	穐谷 三郎
		E-Mail:	akiya@cmpk.or.jp
Re: [Q]ビットマップの回転(Rotation)どうやる?
#832
Author: NOKAS
Date: Fri, 23 Jan 1998 00:00
2 lines
834 bytes
http://support.microsoft.com/support/kb/articles/q80/4/06.asp
Re: [Q]ビットマップの回転(Rotation)どうやる?
#833
Author: 長久保
Date: Fri, 23 Jan 1998 00:00
17 lines
1185 bytes
Fujifuru <zippo@super.win.or.jp> wrote in article
<6a7mi7$8e6$1@saint.win.or.jp>...
> ふじふる(zippo@ainet.or.jp)です。
>
VB5エンタープライズ版で、ExcelをOLEで操作して作表し、クリップボード経由でピ
>
クチャーボックスに表を取り込みました。その画像を以下のように操作したいので
> す。
> ①白黒画像にしたい。
> ②右に90度回転させたい。
> ③拡大したい。
ImageKit を使えば簡単にできます。
体験版が InterNet のどっか(^^;でダウンロードできます。

-- 
よろずや kin-chan
Re: [Q]ビットマップの回転(Rotation)ど うやる?
#845
Author: AKIYA Saburou
Date: Mon, 26 Jan 1998 00:00
19 lines
1354 bytes
穐谷(あきや)です。

Sato Masahiro <masahiro@cij.co.jp> wrote in article
<6ah7da$aff@cij-gw.ykhm.cij.co.jp>...
> >>       真っ黒のものと合成(And)。
> >ここは、「真っ白のものと合成」です。
> >でも、これではできないかもしれませんね。
> 
>  状況にもよるでしょうが、例えば hPal プロパティに白黒のパレットを
> 代入すれば、画像も白黒になりそうですが...。

それで可能でしょう。

ただ、昔、APIを使わずに出来たのですが...手順を忘れました。

-----------------------------------------------------
		差出人:	穐谷 三郎
		E-Mail:	akiya@cmpk.or.jp
Re: Re: [Q]ビットマップの回転(Rotation)どうやる?
#847
Author: Sato Masahiro
Date: Mon, 26 Jan 1998 00:00
51 lines
2023 bytes
In article <6a9n0a$m25@rorty.mim.co.jp>, AKIYA Saburou wrote:
>>       真っ黒のものと合成(And)。
>
>ここは、「真っ白のものと合成」です。
>
>でも、これではできないかもしれませんね。

 状況にもよるでしょうが、例えば hPal プロパティに白黒のパレットを代入
 すれば、画像も白黒になりそうですが...。

 なお、以前似たような処理を行う際に、Win32 API の CreateDIBSection 関数を
用いて白黒16階調のパレットを持つイメージを作成し、転送元の画像をこの
イメージに Bitblt することによって、白黒のイメージに変換しました。

例: hPalプロパティに白黒のパレットを代入
Option Base 0

Type LOGPALETTE
        Version As Integer
        PalNum As Integer
        PalBytes(256 * 4 - 1) As Byte
End Type

Declare Function CreatePalette Lib "gdi32" (lpLogPalette As LOGPALETTE) As Long

Dim p As Picture
Dim logpal As LOGPALETTE
Dim h As Long
Dim i As Integer

Set p = LoadPicture("c:\winnt35\256color.bmp")

logpal.Version = &H300
logpal.PalNum = 256

For i = 0 To 255
    logpal.PalBytes(i * 4) = i
    logpal.PalBytes(i * 4 + 1) = i
    logpal.PalBytes(i * 4 + 2) = i
    logpal.PalBytes(i * 4 + 3) = 0
Next

h = CreatePalette(logpal)
p.hPal = h

SavePicture p, App.Path & "\test.bmp"

-- 
Computer Institute of Japan, Ltd.
佐藤正宏 masahiro@cij.co.jp
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads