以前よりニュースで知ってはいたものの、WEB サイトではたしか昨日まで検索できたはずなのです。 Microsoft、Officeの「クリップアート」提供を終了 Bingイメージ検索に- ITmedia ニュース ですが、今日になってついにダウンロードページはリダイレクトされて以下のようなページになります。というか、このページそのものが胡散臭くて、画像のリンクが切れていますし、書いてある内容も Bing の機能とは合致してないです。日本のマイクロソフトが、何か上からの命令でやっつけ仕事した感満載です。 で、Naver に Office.com のイラスト集をまとめていたので全て削除してイラストのよさげなのを急遽探しました。結局、イラストレータさんが運営しているサイトがいい感じなのでびっくりしました。他はなんか寄せ集め感満載でいいとはとうてい思えなかったです。 Office.com クリップアートが終わったようなので素材サイトを抜粋 - NAVER まとめ 最も使われそうなイラストで特徴がわかりやすい『ビジネス』系で代表画像を掲載しましたが、中にはもちろんいろいろあります。ただ、個人系なので UI はイマイチなものが多いですが( ブログ+αのものもありますし ) でも、使える絵柄が多かったです。 商用利用可のベクターイラスト素材集「ピクト缶」 ご利用規約
ここはあまり数は多くないですが、使いやすい絵柄です。 無料イラスト【みさきのイラスト素材】 利用規定
![]()
![]()
素朴な絵柄で、どちらかと言うと子供や公共向けのポスターやパンフレットに合いそうです。 無料イラスト かわいいフリー素材集 | いらすとや ご利用について
![]()
![]()
大きい画像を見ると、貼り絵のようなイラストです。全般的に、人物の場合表情で表現しようとしている感じがあって、多少過剰かな・・・と思える絵が多いかもしれません。 イラストレーター わたなべふみ 利用規約
![]()
とてもイラストとしてうまいというか、良くできているものが多いと思います。内容は『家族』中心のものが多いですが、表現方法やシチュエーションのバリエーションが多いと思います。 ▼ おっさんの顔というおもしろいシリーズがあります。( かなり数があります )
![]()
無料イラスト素材集ほらぱれっと / フリー&商用可 無料素材利用について
![]()
![]()
![]()
女性が好みそうな可愛い絵柄です。ただ、サイトがバリバリ WordPress なので、素材サイトと言うより、『一記事、一素材』みたいになっているので探すのは少し大変かもしれません。
|
2015年01月22日
Office.com のクリップアートがついに完全に終わったようです。
XMLファイルの書き換え (VBScript)
このブログの RSS を使ってテストしています http://ginpro.winofsql.jp/index20.rdf PC にダウンロードして実行すると、data.xml を作成します ▼ 追加部分![]()
' DOM Object 作成 Set dom = CreateObject("Msxml2.DOMDocument") ' 既存 XML 入力 ' http://ginpro.winofsql.jp/index20.rdf dom.load( "index20.rdf" ) ' 既存のノード( channel ) を取得 Set nodeList = dom.getElementsByTagName("channel") ' 新規ノードを作成( createElement でも良い ) Set node = dom.createNode( 1, "item", "" ) ' Set node = dom.createElement( "item" ) ' ***************************** ' title ノードを作成 ' ***************************** Set nodeChild = dom.createElement("title") ' テキストノードを作成して title ノードに追加 nodeChild.appendChild( dom.createTextNode("これは") ) ' item ノードに titile ノードを追加 node.appendChild( nodeChild ) ' ***************************** ' content ノードを作成( CDATA セクションを使用します ) ' ***************************** Set nodeChild = dom.createElement("content:encoded") Set CDATASection = dom.createCDATASection( vbCrLf & "本文" & vbCrLf ) nodeChild.appendChild( CDATASection ) node.appendChild( nodeChild ) ' ***************************** ' link ノードを作成 ' ***************************** Set nodeChild = dom.createElement("link") nodeChild.appendChild( dom.createTextNode("SHIFT_JIS ですが") ) node.appendChild( nodeChild ) ' ***************************** ' description ノードを作成 ' ***************************** Set nodeChild = dom.createElement("description") nodeChild.appendChild( dom.createTextNode("オブジェクトになると") ) node.appendChild( nodeChild ) ' ***************************** ' category ノードを作成 ' ***************************** Set nodeChild = dom.createElement("category") nodeChild.appendChild( dom.createTextNode("内部コードに") ) node.appendChild( nodeChild ) ' ***************************** ' author ノードを作成 ' ***************************** Set nodeChild = dom.createElement("author") nodeChild.appendChild( dom.createTextNode("変換されます") ) node.appendChild( nodeChild ) ' channel ノードは、一つしか無いので、nodeList(0) で参照 ' channel ノードの下に item ノードを追加 nodeList(0).appendChild( node ) ' 保存 dom.save( "data.xml" ) '<channel> ' <item> ' <title>aaaaa</title> ' <content:encoded><![CDATA[bbbbb]]></content:encoded> ' <link>ccccc</link> ' <description>ddddd</description> ' <category>eeeee</dc:subject> ' <author>fffff</dc:date> ' </item> ' <---- ここに追加 ' </channel>
Microsoft ドキュメント IXMLDOMDocument/DOMDocument Members
2015年01月18日
Firefox の onkeypress の謎 / IE と Chrome はタブ(9) を無視
2010-05-28 当時と状況は変わっていませんでした。 onkeypress の仕様は知りませんが、IE と Chrome はタブ(9) を無視するのに、Firefox は、対象となっています。使わなければ問題は無いのですけれど・・・ element.onkeypress - Web API インターフェイス | MDN
<script type="text/javascript"> function keyAction(evt) { if ( evt.keyCode == 13 ) { alert("Enter"); } if ( evt.keyCode == 9 ) { alert("Firefox!!"); } } </script> <input type="text" name="fld" onkeypress='keyAction(event)' >
2015年01月17日
英語版 YAHOO! 知恵袋があった。YAHOO! ANSWERS かぁ・・・
What is the meaning of noce? 投稿したイラストのコメントで Noce って単語があったんですが、単語では期待した意味を知る事が出来なかったので、Google で Noce meaning ってタイプしたら出て来ました。要するに nice って意味みたいでホっとしました。 検索文字列を全て英単語にするってのは、エンジニアやプログラマにとっては結構重要ですね。 で、こんな質問がありました。 Is the crime rate in Japan low?(日本での犯罪率は低いですか?) この人は、単に写真を撮りたいだけだそうなんですが、あちらではこういう発想で他の国へ旅行するわけですよね。後、大声で叫びたかったです。 『死ぬほど低い!』 でも、これだとたぶん誤解される。
2015年01月16日
DAZ3D : 相変わらず DAZ クオリティ酷い。製品のくせにバグってやがる
本当は、掌の部分がロボットの手になるのですが、Genesis のノーマルでないと関節部分の別部品がズレるという酷い製品です。 そもそも、70% オフだから買ったんですが、イラスト作成時のバリエーションを広くする事を目的で選んでいるので、これはこれで美しいのは間違い無いので満足はしていますが、『またかよ』って感じです。( 他にも問題あるので通常値段では買わないほうがいいです )
2015年01月15日
VB.net : コンソールに表示する位置を指定する / バッチビルドキット付き
今日、ノーマルのパソコン確認したら普通にフレームワーク入ってました。なので、どんな PC であれビルド可能だと思います。大昔から、MS-DOS では指定位置に表示できていました。ただ、Windows になってそのような事をする必要が無くなったので廃れたような気もしますが、何か使い道があるかもしれません。 バッチファイルでこんなふうにします
@echo off cls locate 30,1 echo あいうえお locate 30,2 echo かきくけこ locate 30,3 echo さしすせそ locate 30,4 echo たちつてと pause![]()
Module MyModule ' ************************** ' 実行 ' x座標,y座標 で指定 ' ************************** Sub Main() ' 文字列の配列 Dim argv As String() Dim Pos As String() Dim x As Integer Dim y As Integer ' コマンドラインの取得 argv = System.Environment.GetCommandLineArgs() ' 引数が一つの場合( 例: 5,10 ) if argv.Length = 2 then Pos = (argv(1)).Split(",") ' カンマが無い場合、y座標は 0 if Pos.Length <> 2 then y = 0 end if ' 数値で無い場合、x座標は 0 Try x = Integer.Parse(Pos(0)) Catch x = 0 End Try ' 数値で無い場合、y座標は 0 Try y = Integer.Parse(Pos(1)) Catch y = 0 End Try ' 位置設定 Console.CursorLeft = x Console.CursorTop = y end if End Sub End Module
関連する記事
2015年01月12日
老舗の VB.net <=> C# 変換のオンラインサイトが最近動いてくれないので代替を探しました。あった。あったけど広告がちょっと邪魔。
▼ これいいかも(2017/07/10) Code Converter ▼ 老舗 http://www.developerfusion.com/tools/convert/vb-to-csharp/ なんだか、応答が無い。混んでるのかもしれないけれど、つまり使え無い。 なんで探してみたんですが、日本語で『変換』でキーワードしてもロクなのが出て来ないので、convert で英文記事を探すことに。 あった。 ▼ (日本語化ける) http://www.carlosag.net/tools/codetranslator/ 驚いた事にリアルタイムで変換している。『無茶すんなぁ・・・』と思いながら実行結果の一部が広告に隠れてダサい。いや、クリックさせる為のワザとかもしれない。とにかく使えるようなので。 ▼ ばかやろう古い VB.net のコードが結構あるのでを C# にしてやろう・・・かな。
C# バッチビルドキットで、VB の My 名前空間を使ってクリップボードを使ったり、キーボードの SHIFT キーが押されているかを知る
以下のキットを使うと、コマンドプロンプトで手軽に C# のビルドができます。(%windir%\Microsoft.NET\Framework\v4.0.30319 に環境があります)処理自体の元々は VB.net ですが、単純な実行部分は Code Translation for .NET (C#<->VB.NET) で変換して、後は適当にエラー処理するだけでした。 参考ドキュメント 方法 : My 名前空間を使用する (C# プログラミング ガイド) これを利用するには、Microsoft.VisualBasic.dll の参照が必要ですが、『PATH=C:\Windows\Microsoft.NET\Framework\v4.0.30319;』というパスと、コマンドラインとしては『csc.exe /r:Microsoft.VisualBasic.dll cf.cs』で可能です。(64ビット環境では、Framework64というフォルダがあると思います) ※後、注意事項としてクリップボードのアクセス時には [STAThread] が必要です。 ( このクラスを使用するには、Main メソッドが STAThreadAttribute 属性でマークされている必要があります。 )
using System; using Microsoft.VisualBasic.Devices; using System.Collections.Specialized; class MyModule { [STAThread] static void Main() { string[] argv; argv = System.Environment.GetCommandLineArgs(); string ActType; if ((argv.Length == 1)) { ActType = "name"; } else { ActType = argv[1]; } // VB.net で言うところの、My.Computer // http://msdn.microsoft.com/ja-jp/library/ms173136.aspx Computer myComputer = new Computer(); // SHIFT キーを押しているがどうか if (myComputer.Keyboard.ShiftKeyDown) { if ((ActType == "name")) { // フルパスで表示 ActType = "path"; } else { // ファイル名だけで表示 ActType = "name"; } } StringCollection FileList; string delimStr = "\\"; char[] delimiter = delimStr.ToCharArray(); string[] aData; // エクスプローラから取得したファイル // 一覧形式のデータがあった場合 if (myComputer.Clipboard.ContainsFileDropList()) { FileList = myComputer.Clipboard.GetFileDropList(); foreach (string FilePath in FileList) { if ((ActType == "path")) { Console.WriteLine(FilePath); } else { aData = FilePath.Split(delimiter); Console.WriteLine(aData[(aData.Length - 1)]); } } } // 通常のテキストデータがあった場合 if (myComputer.Clipboard.ContainsText()) { Console.WriteLine(myComputer.Clipboard.GetText()); } } }
関連する記事 ▼ 元となった VB.net のコード
Imports System.Collections.Specialized Module MyModule ' ******************************************** ' クリップボードにあるファイル情報を標準出力へ ' ( エクスプローラの「コピー」で取得した内容 ) ' 引数による処理タイプの決定 ' name : ファイル名のみ ' path : フルパス ' ******************************************** Sub Main() ' 文字列の配列 Dim argv As String() ' コマンドラインの取得 argv = System.Environment.GetCommandLineArgs() Dim ActType As String ' 引数が無い場合は、名前のみ If argv.Length = 1 Then ActType = "name" Else ' name または path ActType = argv(1) End If ' SHIFT キーを感知できた場合は処理を反転する ' 要するに引数無しで SHIFT キーを押していたらフルパス If My.Computer.Keyboard.ShiftKeyDown Then If ActType = "name" Then ActType = "path" else ActType = "name" End If End If Dim FileList As StringCollection Dim FilePath As String Dim ClipString As String = "" ' フルパスから名前だけを取り出す為のデリミタ Dim delimStr As String = "\" Dim delimiter As Char() = delimStr.ToCharArray() Dim aData As String() ' クリップボードにファイルのデータがあった場合 If My.Computer.Clipboard.ContainsFileDropList() Then 'データを取得する FileList = My.Computer.Clipboard.GetFileDropList() '取得したファイル名を列挙する For Each FilePath In FileList If ActType = "path" Then Console.WriteLine( FilePath ) Else aData = FilePath.Split(delimiter) Console.WriteLine( aData(aData.Length - 1) ) End If Next End If End Sub End Module
タグ:C#
2015年01月11日
VB.net : Win32 API でHTTPダウンロード / バッチビルドキット付き
バソコンに %windir%\Microsoft.NET\Framework\v4.0.30319\vbc.exe があれば、exe をビルドできますWin32 API 的には、URLDownloadToFile を使用するだけです。経験から言って、Framework を使用するよりは堅実なような気もします。
Imports System.IO ' Path Imports System.Diagnostics ' Process Imports System.Runtime.InteropServices ' DllImport Module MyModule <DllImport("urlmon.dll", CharSet:=CharSet.Unicode)> _ Private Function URLDownloadToFile( _ ByVal pCaller As Integer, _ ByVal szURL As String, _ ByVal szFileName As String, _ ByVal dwReserved As Integer, _ ByVal lpfnCB As Integer _ ) As Integer End Function ' ******************************************************** ' Win32 API でHTTPダウンロード ' 引数 : URL "ローカルパス" [s] ' s は省略可能で、指定するとダウンロード後にエクスプローラ ' を開きません ' (引数の例) ' http://lightbox.on.coocan.jp/download/WinOfSql102.zip .\WinOfSql102.zip ' ******************************************************** Sub Main() ' 文字列の配列 Dim argv As String() ' コマンドラインの取得 argv = System.Environment.GetCommandLineArgs() Dim ret As Integer Dim str As String ' 引数が二つ以上の場合 If argv.Length >= 3 Then ' API の呼び出し ret = URLDownloadToFile( 0, argv(1), argv(2), 0, 0 ) if ret = 0 then str = Path.GetFullPath( argv(2) ) str = Path.GetDirectoryName( str ) if argv.Length = 4 then if argv(3) = "s" then else ' 第3引数に s を指定しない場合は ' エクスプローラを開く Process.Start("explorer.exe","/e,"+str) end if else ' 第3引数に s を指定しない場合は] ' エクスプローラを開く Process.Start("explorer.exe","/e,"+str) end if end if end if End Sub End Module ' 古い vb の定義 ' Private Declare Function URLDownloadToFile Lib "urlmon" Alias _ ' "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal _ ' szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long ' ▼ ' http://support.microsoft.com/kb/244757/ja
このコードでは、ダウンロードした後、エクスプローラでダウンロードしたフォルダを開きます。 関連する記事
DAZ3D : Roaring
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。 Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。 また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。 ※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです 対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。※ エキスパートモードで表示しています アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります
<% if:page_name eq 'archive' -%> アーカイブページでのみ表示される内容 <% /if %> <% if:page_name eq 'category' -%> カテゴリページでのみ表示される内容 <% /if %> <% if:page_name eq 'tag' -%> タグページでのみ表示される内容 <% /if %>この記述は、以下の場所で使用します![]()
|