問題タブ [collectionfs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
imagemagick - CollectionFS Graphicsmagick は、より大きい場合にのみ幅のサイズを変更します
collectionfs では、次の方法で大きな画像のサイズを幅 1200px に変更し、ファイル サイズを縮小するために高さを比例させます。
たとえば、サイズが 2000x2000 の画像は、実際には 1200x1200 でアップロードされますが、ファイル サイズは大きくなります。理由を説明できますか?また、幅がたとえば 2000px を超える場合にのみ画像のサイズを変更するようにメソッドを変更するにはどうすればよいですか?
mongodb - MeteorJS - 画像 (FS.collection) を MongoDB Collection 内の関連ドキュメントにリンクする
Meteorjs でアプリを作成しています。次のように初期化されるコレクションがあります。
対応する場所の画像も保存したい。プロジェクトに collectionFS パッケージを追加しました。次のコードは、画像の個別のコレクションを作成します。
ただし、この一連の画像を「場所」の関連ドキュメントに関連付ける方法がわかりません。または、mongo コレクションに画像を挿入するだけです。
javascript - ループ内の値を、最初のループ実行で設定された値に設定します
私がやりたいことは、最初のループ実行によって設定された値に変数を設定することです。
背景情報として: CollectionFS を使用して、流星アプリに複数のファイルをアップロードしています。ここで、すべてのファイル (最初のファイルを除く) に、カスタム フィールドの値parent
を最初に挿入されたファイルの ID に設定したいと考えています。でIDを取得しdata._id
ます。
私の試み:
アップロードされたファイルごとにループを使用しているdata
ため、最初のファイルは未定義だと思ったので、値があるかどうかを確認します。この場合もparent
未定義になります。2 番目のファイルについてdata
は、既に設定されているため、その値としてparent
取得する必要があります。data._id
parent
しかし、いつものように、これは正しく動作しませんundefined
:
javascript - グラフィックスマジックを使用した collectionFS の予期しない空の書き込みストリーム
画像の管理に CollectionFS を使用しています。gm()
さらに、画像の操作にgraphicsmagickを使用しています。
ここで、既に保存されている画像をトリミングしたいと考えています。したがって、クリック イベントでは、crop() を実行するサーバー メソッドが呼び出されます。しかし、これを行った後、コレクションでsize=0
正しい日付に更新された空の画像を見つけました。
私が間違っていることはわかりません。
共有.js
サーバー.js
client.js
アップデート
クリスチャンが推奨するように、writeStream は readStream のように同じにすることはできないため、writeStream に tmp ファイルを使用しています。これにより、結果が空になりました。
ただし、tmp ファイルに書き込んだ後、その内容をパブリック ストアにコピーする必要があります。それ、どうやったら出来るの?
更新2 私はこれを試しました:
javascript - グラフィックスマジックを使用した collectionFS での同じ読み取りストリームと書き込みストリーム
を使用して画像を操作する必要がありgraphicsmagick
ます。
私の FSCollection は次のようになります。
私の問題は、writeStream が readStream と同じであるべきだということです。これは空の結果につながるため、これは機能しません。
javascript - gm ストリーム用に一時的に作成されたファイルの削除
meteor アプリで画像のメインプレーションに collectionFS と gm を使用しています。一時ファイルを作成しています:
最後に、この一時ファイルを削除します。それ、どうやったら出来るの?私はストリームにあまり詳しくありません... のようなものだと思いますfs.remove(filename)
。
javascript - Meteor CollectionFS コレクションは未定義ですか?
CollectionFS と GridFS を使用して、いくつかの画像をアプリにアップロードして提供しようとしています。
次の定義があります。
ImageStore.js:
ImageStorePub.js:
ImageUploadHandler.js:
これらすべてを入力した後、それらが既にサーバーフォルダーにあるという事実にもかかわらず、それらをすべてラップしてみましたif(Meteor.isServer){...}
が、エラーのためにアプリがまだクラッシュしていますReferenceError: EventImages is not defined
at server/route handlers/ImageUploadHandler.js:2:1
javascript - gm: 画像の幅が 1000px を超える場合、画像のサイズを変更します
ストリームを読み取って同じファイルに書き戻す必要があるため、gm
inを介して画像操作を実行しようとしています。以下に示すように、一時ファイルを使用する必要があります。collectionFS
画像の幅が 1000px を超えているかどうかを確認したい。この場合、サイズを 1000px に変更する必要があります。
TypeError: Object [object Object] has no method 'pipe'
残念ながら、エラーが発生したため、これは機能しません。Error: gm().stream() or gm().write() with a non-readable stream.