ふらっと C#,C♯,C#(初心者用) Part141

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/12/15(土) 10:46:07.45ID:Wu4Fx0bU
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
2020/07/13(月) 17:28:58.81ID:Ke/bF0yo
これからは業務アプリもunityやunrealengineだな
2020/07/13(月) 17:32:08.72ID:aaJV9hNQ
自動倉庫のシステム組むのにそんなもんいらん
2020/07/13(月) 17:38:07.71ID:VzOfFxcE
配管系のゲージは研修半分でオーバーレイして表示させるとかそういう話聞くけど、在庫数は無いわ。
金はかかるがだいたいパレットやらロットにRFタグつけて棚卸しできるようにするだろ。
ちなみにプラントのモデルは案外あるし、点群で撮っちゃうって手もある。

ただ、確かにモデルを表示する類の業務アプリはUnityで作ってるのもあるよ。
それなりに大手の製造業だけど。
2020/07/13(月) 21:29:20.64ID:dyxM/ipS
>>593
リアル涙の倉庫番スペシャルか。
別方面で売れるかもしれんな。w
2020/07/13(月) 22:41:02.33ID:onCQ4Lj1
そんなに余裕ならamazonの倉庫で
働けば良いのに:-p
599デフォルトの名無しさん
垢版 |
2020/07/14(火) 11:59:39.83ID:Mma3I+br
倉庫管理楽しくなりそう
https://www.youtube.com/watch?v=Lu56xVlZ40M
2020/07/14(火) 20:22:00.29ID:dcabkqyp
>>597
バーチャルで人が汗水垂らして荷物を運んで
それとシンクロしてリアル倉庫で機械が荷物運ぶのな
これこそ来たるべき未来の労働の姿だわ
2020/07/14(火) 20:29:04.35ID:Wijq2S4p
パシフィック・リムが思い浮かぶな
2020/07/14(火) 20:30:24.39ID:3GhCpHPS
まあゲームだな
2020/07/14(火) 21:04:18.81ID:GSoz0Gzm
>>600
それだけでは体力的に厳しいからパワーアシストスーツを着ないとな
604デフォルトの名無しさん
垢版 |
2020/07/19(日) 18:09:36.82ID:PL1UBy2g
X軸を対数にしようとIsLogarithmic= Trueにしたら"対数スケールはこの軸には使用できません"と例外が出たが、
Y軸では出ません。

プロットしたデータが悪いのかと試しにXもYも同じデータでプロットしてもX軸を対数にしたときだけやはり例外が出ます(Y軸だけ対数表記だと出ない)。
詳しい方がいたらアドバイスをください。

private void CalcFFT(int samplingNum)
{
chart2.Series[0].Points.Clear();
var input = new Complex[samplingNum];
var output = new Complex[samplingNum];
for (int i = 0; i < chart1.Series[0].Points.Count; i++){
input[i] = new Complex(chart1.Series[0].Points[i].YValues[0], 0);
output[i] = new Complex(chart1.Series[1].Points[i].YValues[0], 0);
}
// FFTを実行
Fourier.Forward(input);
Fourier.Forward(output);
for (int i = 0; i < input.Length; i++){
var aftInput = Complex.Divide(input[i], output[i]);
var aftOutput = 20*Math.Log10( Complex.Abs(aftInput));
chart2.Series[0].Points.AddXY(aftOutput, aftOutput);
}
chart2.ChartAreas[0].AxisX.IsLogarithmic = true;//これだけ例外になる
chart2.ChartAreas[0].AxisY.IsLogarithmic = true;
}
2020/07/19(日) 18:18:21.40ID:R6Y/ShSW
>>604
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.datavisualization.charting.axis.islogarithmic?view=netframework-4.8
>対数グラフでは、0 または負のデータ値を使用できません
https://mrymmthr.wordpress.com/2015/07/15/chart01/
606デフォルトの名無しさん
垢版 |
2020/07/19(日) 18:29:40.39ID:PL1UBy2g
>>605
0や負数を取り除いてもエラーになってしまうんです。
そもそもY軸では負数を含めてもエラーにはならなかったので悩んでいます・・・。

上記のリンクも調べて既に試したのですが、
SuppressExceptionsを設定してもダメでした。
2020/07/19(日) 20:29:44.78ID:xpqal6/5
chartなんて使ったことないから何か勘違いしてるかもしれんけど
別に何の問題もなかった
private void PlotSomething()
{
  for (int i = 0; i < 10; i++)
  {
    var x = Math.Pow(10, i);
    chart1.Series[0].Points.AddXY(x, x);
  }
  chart1.ChartAreas[0].AxisX.IsLogarithmic = true;
  chart1.ChartAreas[0].AxisY.IsLogarithmic = true;
}
2020/07/19(日) 21:46:59.96ID:HgFtcLoK
動くコードから一つ一つ近づけて行くのもいい手だよね
609デフォルトの名無しさん
垢版 |
2020/07/19(日) 22:52:49.13ID:PL1UBy2g
>>607
コードをお借りして試してみましたがダメでした・・・
私の環境で気になるのは、
AddXYをした後でもX軸のAxisX.Minumum=0でAxisX.Maximum=1のままだったんですよね・・・
そのままformを抜けて描画すると突然アボートになる・・・
2020/07/19(日) 23:04:54.28ID:vyF3aSiC
フォームロード時にエラーになる?
対数軸持ちチャートはデータ数0を
許さないから、ダミーデータを入れた?

series.enabled = false;はしてある?

でなかったらわからないです。
2020/07/19(日) 23:35:35.36ID:HgFtcLoK
>>609
新規作成したプロジェクトでも同じって言ってるの?
612デフォルトの名無しさん
垢版 |
2020/07/19(日) 23:51:19.95ID:PL1UBy2g
>>611
すみません、新規作成したプロジェクトで>>607を走らせたらいけました・・・
今のプロジェクトで変なプロパティ触っちゃったのかな
X軸の対数表記絶対許さないマンな動きだったのでコントロールを作り直して試してみます!
2020/07/20(月) 00:01:29.70ID:evpinthC
>>612
また、新規作成して今度は駄目なコントロール貼り付けて
動くか確認

思った通り駄目だったら
動くやつと比較ツールで比較して出た差分を修正して動くようになるところを確認

とか
614デフォルトの名無しさん
垢版 |
2020/07/20(月) 10:09:35.64ID:oCdL4TUp
for (int i = 0; i < input.Length; i++){
var aftInput = Math.Log10(Complex.Divide(input[i], output[i]));
var aftOutput = 20*Math.Log10( Complex.Abs(aftInput));
chart2.Series[0].Points.AddXY(aftOutput, aftOutput);
}
chart2.ChartAreas[0].AxisX.IsLogarithmic = true;
chart2.ChartAreas[0].AxisY.IsLogarithmic = true;
615デフォルトの名無しさん
垢版 |
2020/07/20(月) 10:10:59.89ID:oCdL4TUp
こっちか
for (int i = 0; i < input.Length; i++){
var aftInput = Math.Log10(Complex.Abs(Complex.Divide(input[i], output[i])));
var aftOutput = 20*Math.Log10( Complex.Abs(aftInput));
chart2.Series[0].Points.AddXY(aftOutput, aftOutput);
}
chart2.ChartAreas[0].AxisX.IsLogarithmic = true;
chart2.ChartAreas[0].AxisY.IsLogarithmic = true;
2020/07/20(月) 12:08:59.65ID:2IOyO+tV
いや、ソリューション全部比較しないとプロパティまで見えないよね?
2020/07/22(水) 12:10:47.54ID:G1e5+QGc
※usingは長いので省略
class useDynamicObject1{
static void Main()
{
dynamic order1 = new Order();
order1.ProductID = 100;
}
}

class Order: DynamicObject
{
private Dictionary<string,object> items = new Ditionary<string,object>();
private const object MyDefault = null;

public override bool TrySetMember(SetMemberBinder binder,object value)
{長すぎてエラーが起こるので略}
}
というようなコードがあったとします。dynamic order1 = new Order();
order1.ProductID = 100; この部分でOrderオブジェクトのTrySetMemberメソッドが動作してるっぽいんですが
通常 order1.TrySetMember(引数を入れる);という形でインスタンスメソッドを呼び出しますよね?
なぜorder1.ProductID = 100;の記述でTrySetMenmberメソッドが呼び出されるのかがわかりません
理由を教えてください、よろしくお願いいたします。
2020/07/22(水) 12:17:39.88ID:PZLPLd2s
>>617
継承元のsetterがそう書いてるからじゃないの?
代入でsetterメソッドが呼ばれるよ
2020/07/22(水) 13:48:00.79ID:SRlHt7kI
>>617
docsに書かれている通り、プロパティに値をsetするときに呼ばれるような仕様だから、じゃダメなの?
https://docs.microsoft.com/ja-jp/dotnet/api/system.dynamic.dynamicobject.trysetmember?view=netcore-3.1
>このメソッドは、sampleObject.SampleProperty = "Test"のようなステートメントがある場合に呼び出されます。
>sampleObject は、DynamicObject クラスから派生したクラスのインスタンスです。
620デフォルトの名無しさん
垢版 |
2020/07/22(水) 15:11:33.71ID:RCIwbmD0
なるほど、状況はわかりましたが コードのイメージができません
どのようなコードを記述するか参考例はないでしょうか?

※どこかのサイトにかいてあるコードでもかまいません
621デフォルトの名無しさん
垢版 |
2020/07/22(水) 17:11:56.47ID:Vz073kjI
マルチスレッドについて質問です。
C#は初心者です。

コードの書き方を見ると、Threadは使うな!Taskを使え!というものばかり見ます。
今の時代はThreadはgotoみたいな扱いで、使っちゃだめなんでしょうか。
2020/07/22(水) 17:15:28.36ID:CV+o1S+t
>>621
Taskで事足りるから、Threadを直接扱うメリットが無い
2020/07/22(水) 19:37:30.15ID:INn9Gfu9
>>621
ThreadをThread.sleepで保留していて無理やり割り込んで起こすとか
言うような処理が必要なければTaskとかParalellで十分だかららしいよ
2020/07/22(水) 20:04:31.24ID:AJamwNQZ
車で例えるなら、
Thread/ThreadPoolを使うマルチスレッドは、クラッチ操作とかいろいろ面倒くさいマニュアル車
Taskを使ってのマルチスレッドは、アクセルを踏むだけで動いてくれるオートマチック車
ってなイメージかな
でもってTask.Run()すら書かなくていいasyncなメソッドは自動運転車

ただ単に移動したいだけなら楽なAT車(Task)を使えばいい
全部お任せしたいなら自動運転車(asyncメソッド)で十分
2020/07/22(水) 21:35:45.28ID:Dyis6wZJ
>>620
setter c#でググれ
626デフォルトの名無しさん
垢版 |
2020/07/23(木) 00:38:31.81ID:4rdlbzE6
async await で済むならそれが一番良いね
2020/07/23(木) 09:02:15.09ID:NYI4LF+6
621だけどありがとうございます!
時代の流れに沿ってTaskの勉強します
2020/07/23(木) 09:26:43.58ID:5gH7rQay
https://teratail.com/questions/279561

こーゆーの面白いけど、質問者はもうちょっとうまく立ち回ってほしいなあ。
2020/07/23(木) 11:41:04.02ID:LCQAVDS7
>>627
非同期処理自体に明るくないなら古い生のThreadの時代の記事を
むしろ一番最初に読んだ方が理解が早いと思う。
特に非同期処理固有の落とし穴をちゃんと理解しておくことは重要

今時の便利なスキームの有難みも分かるしね
2020/07/24(金) 04:18:35.62ID:Xje7ei/I
windowsフォームアプリは簡単なものなら作れるようになったので
次はウェブアプリに挑戦しようと思い、ASP.NETの本を読んで勉強してます

テスト用に作ったアプリをローカルではなく
実際にサーバーにあげて動かしてみたいと思っているのですが
こういった用途のサーバーレンタルは有料と考えてよいでしょうか?

さくらのVPS for Windows Serverなどを考えています
とりあえずの目的は、運用するまでの手順を学ぶことです
スレチだったらごめんなさい
2020/07/24(金) 04:36:15.16ID:92mFR8ZL
aws一択
2020/07/24(金) 04:49:22.51ID:Xje7ei/I
>>631
ありがとうございます
そちらも当たってみます
2020/07/24(金) 10:22:06.04ID:YnCezvlk
Azureに無料枠あっただろ
634デフォルトの名無しさん
垢版 |
2020/07/24(金) 10:48:35.32ID:qMgm686n
さくらのVPSでも良いけど
shellやpythonやdjangoの便利さに心奪われて
C#やASP.NETのことを忘れてしまうだろうな
それでも良いけど
2020/07/24(金) 11:06:10.55ID:SsZ4AS8R
>>634
心奪われるほどのものか?
2020/07/24(金) 12:11:32.93ID:/tD0n6Gi
型安全じゃない言語ってホビー以外に使えるの?
2020/07/24(金) 13:32:46.70ID:SsZ4AS8R
>>636
使われてるでしょ?保守は地獄だろうけど
2020/07/24(金) 13:43:02.46ID:7VtUugQr
じゃあ業務では使えないね
2020/07/24(金) 14:23:28.01ID:Y2miOylG
>>636
Cは型安全だと思ってる?
それともCはホビー以外に使えないと思ってる?
2020/07/24(金) 15:00:20.11ID:SsZ4AS8R
>>638
使われてるって言ってるのがわからないの?
2020/07/24(金) 15:19:35.82ID:7VtUugQr
ホビーの延長みたいな感覚で仕事をしてる責任感の薄い人が居ることは事実
2020/07/24(金) 15:22:41.00ID:ZEE8zZDA
板のローカルルールとスレのテンプレが読めない人はNG
2020/07/24(金) 19:32:24.53ID:uJnpulJb
読んでるけど従うつもりがないだけなんでそこんとこ認識をヨロシク
2020/07/25(土) 16:09:38.45ID:+eV1ptNI
NSのC#自体のソース読むと結構アンマネージ使ってたような覚えがあるけど気のせいか
2020/07/25(土) 16:10:19.04ID:+eV1ptNI
ちゃたった
NS->MS
2020/07/26(日) 08:31:48.16ID:Vt2OdSTv
>>644
気のせいじゃなく、実際結構使ってるよ。
2020/07/26(日) 12:34:03.71ID:PwqMs8Qo
>>644
C#自体と言われてもよくわからないんだけど、roslynのこと?
2020/07/26(日) 22:14:35.40ID:/Zfph6D6
idisposeも実装されてない
他のクラスの既にできているオブジェクトを外から強制的に消す
(全く参照させない、gclistに強制的に入れる)方法って
ありますか?
そのクラス内のあるstaticクラス変数にそのオブジェクトの
thisが入っているので外から
そのオブジェクトのアドレスだけはわかる
状態です。
それをなんとか全くどこからも
使わせないようにしたい
2020/07/26(日) 22:16:31.03ID:/Zfph6D6
あとthis.anyMethod()も
全くできないようにさせたい
外部から強制的に
できる?
2020/07/26(日) 22:21:36.89ID:/Zfph6D6
そのオブジェクトは
unityのObjectも継承してないので
static destroy(Object)も使えません
2020/07/26(日) 22:25:51.16ID:KwNXIlQB
>>648
IDisposable.Dispose()を実装して呼び出してもオブジェクト自体が消される訳じゃない
2020/07/26(日) 22:33:46.24ID:nxTYlDLI
条件がよくわからんしunityに限る話ならunityスレでは?
というかreflectionがあるんだから完全に禁止するってほぼ不可能じゃない?
2020/07/26(日) 22:33:57.56ID:/Zfph6D6
gclistに強制的に入れて
強制的にgc実行とかできない?
2020/07/26(日) 22:37:41.22ID:jmmTW8OV
何がしたいのか分からないねw
たぶん問題設定そのものが間違ってると思う
2020/07/26(日) 22:38:39.57ID:TQs5aOn7
>>653
参照を消したいのなら変数にnull入れてGC.Collect()
2020/07/26(日) 22:45:32.48ID:/Zfph6D6
>>655
全参照にnullをいれなきゃそれだめなんじゃ?
オブジェクトの元は外部の(管理下にない)ソースなんで自分でコード変えることができないんだけど
コード内容はわかるといった今の状況です
そのコード実行もしなきゃいけないし、オブジェクトも
つくられるんだけど、実行中に使えないように
したいという状況です
2020/07/26(日) 22:51:39.34ID:Smduqo9C
誰かエスパーしてあげてw
2020/07/26(日) 23:08:48.27ID:kypOQynU
仮に触れなくすることができたとする
でもそれらをそれまで触ってたオブジェクトは当然触れるものと思って触るわけだ
そこで実は触れませんとなったらNullReferenceExceptionか何かで死ぬしかないことになると思うんだけど

ならもう自プロセス終わらせればいいってことにならないかな
2020/07/26(日) 23:21:40.08ID:KwNXIlQB
>>656
そのオブジェクトを使う部分を自由に出来るなら、
管理用のクラスを通してしかそのオブジェクトにアクセス出来ないようにすれば?
管理用のクラスはIDisposable.Dispose()を実装するとして。
2020/07/26(日) 23:35:57.75ID:/Zfph6D6
>>659
管理部分は盲点でした
外部ソースをdllでまとめて
ある条件のときはそのdllを読み込まず
ダミーのdllを読み込ませる
といったことでなんとかできそうに見えます
ちょっと試してみます
ありがとうございます
2020/07/26(日) 23:52:58.90ID:/Zfph6D6
みなさんありがとうございます
大変参考になりました
2020/07/27(月) 01:47:30.49ID:BYRdt52X
本人が解決したって言うから良いんだけど全然理解できないのは俺だけ?
管理クラスと言うかラッパーみたいな共通窓口作ってそこでフラグ管理みたいなことしてアクセス制御すりゃオッケーって話?
2020/07/27(月) 02:33:31.05ID:msy0LCKO
>>662
気になるだろうけど他人が掘り下げても得られるものは無いと思う
2020/07/27(月) 02:34:48.02ID:+/9Qvyd1
何がしたいかは何となくわかる。

それが本当に本人が思っているほど必要なことかと聞かれたら...
大半の人は質問者は何か根本的に勘違いをしてるんじゃないかと思うんじゃないだろうか
2020/07/27(月) 05:15:50.18ID:l/11S2TE
やったできたわ
嬉しい
共通に使うクラスAがあって
クラスB.dllのオブジェクトが通信しあってる。
クラスB.dllに似たクラスC.dllをつくってクラスAと通信するがクラスBからはなにもしてほしくない
でもクラスBもAも変えられず実行もする
ってなるとクラスBを殺すしかと
思ってたけど
必要時クラスB.dllをダミーに置き換えればいけた
管理の部分はみれてなかった
コード内容が完全にわかってるからいけた
2020/07/27(月) 05:30:47.92ID:BYRdt52X
コードの中身全部がわかってなくてもインターフェースさえわかってればできたんじゃ?
ダミー作ることなんてテストとかでも使うしよくある手法じゃないかな
dllファイル名書き換えてとかはあんませんだろうけど

つうかdisposeもgcもunityも関係ない…
無理やりBを解放したら普通はAがまともに動作しないでしょ
667デフォルトの名無しさん
垢版 |
2020/07/27(月) 12:44:08.29ID:vNtx9fDh
餌を与えないで下さい
2020/07/27(月) 17:25:24.57ID:6PuT4Gny
>>647
C#というか.Net Frameworkのソースが次で公開されてる

http://referencesource.microsoft.com/
2020/07/27(月) 17:29:51.74ID:o3qaYBwJ
>>668
なんたレガシーな方か
2020/07/27(月) 18:42:15.63ID:CkDy44u6
そりゃフレームワークはどうしたってそうなるだろ。
2020/07/28(火) 19:00:41.72ID:vZrvythQ
質問させてください。
.NET Framework3.5 で完全な透明な黄緑色で円を描画する方法はありませんか?

Graphics g = Graphics.FromImage(this.bmp);
Color customColor = Color.FromArgb(0, 128, 255, 0);
SolidBrush brush = new SolidBrush(customColor);
g.FillEllipse(brush, 0, 0, 6, 6);

とやった場合、意図せぬ透過処理がされてしまい何も描画されません。
2020/07/28(火) 19:08:56.06ID:CTX9A1Y/
完全に透明な時点で色もクソもねーだろ
笑わせんな
2020/07/28(火) 19:14:28.88ID:IIddPlFk
>>671
そのthis.bmpをPNGフォーマットなどで保存したら「完全な透明な黄緑色で円を描画」した画像になるよ
ディスプレイで見えないのは不透明度が0なんだから指示通りでしかない
2020/07/28(火) 19:30:19.58ID:AU+xTBn3
正直な所、これが意図してないとしたら、何を意図してるのかわからん。
2020/07/28(火) 19:39:57.11ID:8/UcfNM3
村上ドラゴンの小説のタイトルかと思ったよwww
2020/07/28(火) 19:45:40.40ID:p7iAQgQg
準2級エスパー能力を発揮するなら
半透明な黄緑は期待したものでなく
黄緑のサングラスを通して見たようなものを期待しているのではないか
画素ごとに輝度をとって黄緑と乗算するか、いきなり黄緑と乗算するか、
そんなものがお望みなのではないか
2020/07/28(火) 19:50:48.29ID:DIHaAiPw
>>676
エスパーにエスパーが必要になりそうだなw
>>671
適当なペイントソフトで再現してみてから考えるなり質問した方がいいと思う
MSペイントじゃなくフォトショとかGIMPとか半透明色が使えるやつで
2020/07/28(火) 19:54:13.43ID:vZrvythQ
皆様説明が下手ですみません。
>>673
保存しましたがなりませんでした。
>>676
そういうブレンド演算処理の違いの話ではなく、
完全な透明は、通常 ARGB(0,0,0,0)という透明な黒の事が多いですが、
私が描画したい色は、完全に透明(つまりアルファ値が0)な黄緑で、
ARGB(0, 128, 255, 0) という透明な黄緑を描画したいという意味です。
2020/07/28(火) 19:58:06.12ID:p7iAQgQg
真っ黒な光みたいな?
2020/07/28(火) 20:01:17.20ID:AU+xTBn3
>>678
不透明度を1で描いたらどうなる?
2020/07/28(火) 20:02:15.75ID:DIHaAiPw
>>678
その保存した画像をアルファ値だけ弄ってみれば期待通りになっているのが分かるはず
2020/07/28(火) 20:12:36.90ID:vZrvythQ
>>679
いえ、アルファ値が0なので完全に透明で何も見えないのでARGB(0,0,0,0) と区別はつかないですが、
メモリ上のビットマップの内容にはアルファが0でも赤と緑の値に128や255の値を書き込めますよね。
そういう描画(つまり半透明演算をしない)がしたいんです。

>>680
目視できないくらい薄い黄色で描画されました。
何度も重ね描きしたら、うっすらと黄色が見えてきました。
不透明度128なら半透明の黄緑色で描画されます。

>>681
this.bmp は画像ファイルなので、その上に上書きで円を描画すれば元の画像が消えますよね?
そうはならず、元の画像のままなので期待通りにはなりませんでした。
2020/07/28(火) 20:21:15.85ID:DIHaAiPw
>>682
>その上に上書きで円を描画すれば元の画像が消えますよね
透過で上書きして消えるペイントソフトある?普通は消しゴムじゃないか?
それなら範囲指定するデータを設定してそれに沿ってBitmapDataで画素を置き換えたことしかない
2020/07/28(火) 20:31:52.02ID:s40ygP9w
ARGB(0, 128, 255, 0)で描画したはずが
抜き出してみるとARGB(0, 0, 0, 0)になってしまうとか?

それとも
ARGB(0, 128, 255, 0)での描画or透過処理で、画像に目で見える影響を与えたいとか?
2020/07/28(火) 20:49:25.10ID:vZrvythQ
>>683
消えるペイントソフトは無いと思います。
消しゴムだと普通はアルファ値だけ0になるか、又は透明な黒 ARGB(0,0,0,0)で消えますよね。
そうではなく、透明で黄緑な消しゴム ARGB(0,128,255,0) を使いたいという事です。

>>684
>ARGB(0, 128, 255, 0)で描画したはずが
>抜き出してみるとARGB(0, 0, 0, 0)になってしまうとか?

違います、元の画像のまま何も変化なしです。

>それとも
>ARGB(0, 128, 255, 0)での描画or透過処理で、画像に目で見える影響を与えたいとか?

そうです、透明な黄緑で円を描画したのだから、
円の形で透明に切り抜かれてほしいんです。
(更に切り抜かれた部分は透明な黒ではなく、透明な黄緑で)
2020/07/28(火) 21:04:55.49ID:s40ygP9w
透明な黄緑の先には元の画像が薄っすら見える方がいいのか?

透明な黄緑一色の均一な色で塗りつぶすのか?
2020/07/28(火) 21:12:34.91ID:AU+xTBn3
>>682
と言うことは、不透明度0の時に特別扱いされてないか確かめないといかんな。
不透明度0って、描かないと判断されてるのかもしれん。
2020/07/28(火) 21:13:39.38ID:CTX9A1Y/
>>685
もう何言ってるのかさっぱりワカンネ
ペイントかフォトショでその期待する画像作ってよ
2020/07/28(火) 21:15:26.22ID:CTX9A1Y/
掲示板で一番楽なのは計算式かな?
それがformsアプリでできるかどうかって言うと微妙だと思うけど
2020/07/28(火) 21:20:53.33ID:CTX9A1Y/
ちょっと思ったのは
もしかしてやりたいのはカラーキーの抜き色?
2020/07/28(火) 21:22:54.80ID:DIHaAiPw
>>685
あらかじめthis.bmpをFormat32bppArgbにする
this.bmpと同じ大きさのBitmapを作ってくりぬきたい場所にFillEllipseで描画する。(refbmpとする)
refbmpとthis.bmpのBitmapDataを作ってrefbmpの画素がある部分と同じアドレスでthis.bmpの画素のアルファ値を0にした黄緑色の画素データを書き込む
https://docs.microsoft.com/ja-jp/dotnet/api/system.drawing.imaging.bitmapdata.scan0
これしかやったことは無い。図形じゃない塗りつぶしならGraphics.Clear(Color)が使えるけど図形を指定するやり方はわからない
2020/07/28(火) 21:24:32.89ID:8/UcfNM3
>>685
なんか思いっきり勘違いしてる気がするけど、アルファが0ってことは
何も上書きしないのと同じことだよw
無色のガラス板を乗せたのと同じだからw
2020/07/28(火) 21:51:15.86ID:vZrvythQ
>>686
>透明な黄緑の先には元の画像が薄っすら見える方がいいのか?

いいえ。

>透明な黄緑一色の均一な色で塗りつぶすのか?

はい、そうです。

>>688
フォトショップは持っていないのと、
ペイントはアルファチャンネルに非対応のようなので
Gimpで説明させていただきます。
説明画像をこちらにアップロードしました。
https://f.easyuploader.app/eu-prd/upload/20200728214113_76595047614e3537674b.zip

"元画像.png" をGimpの消しゴムツールで消すと、
"消しゴム.png" の画像になります。
この画像をGimpで開き、円で消された部分の色々な箇所を、
Gimpのスポイトツールで色を取得すればわかりますが、
青や黄色、白等が取得でき、
透明でありながら元画像の色が残っている事がわかると思います。

私がやりたいのは、"目的の画像.png" を.NETで作りたいという事です。
この画像の円で消された部分をスポイトツールで色を取得すると、
RGB(128,255,0)の黄緑色のみが取得されます。

>>690
いいえ、やりたいのはカラーキーの抜き色ではないです。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況