Go での .gif のレンダリング
Go 言語では、.gif ファイルのレンダリングは一般的なタスクです。 .gif ファイルは、連続した画像フレーム間を切り替えることで動的な効果を表現できる一般的な動的な画像形式です。 Go 言語では、いくつかのライブラリを使用して .gif ファイルを処理およびレンダリングし、カスタマイズされたアニメーション効果を実現できます。この記事では、Go 言語で .gif ファイルをレンダリングする方法を紹介し、この機能をよりよく理解して適用するのに役立つサンプル コードとテクニックをいくつか紹介します。初心者でも経験豊富な開発者でも、この記事は役立つ参考資料とガイダンスを提供します。 Go 言語で .gif ファイルをレンダリングする秘密を探ってみましょう。
質問の内容
コードサンプルを動作させようとしています。これは「go プログラミング言語」(https://github.com/adonovan/gopl.io/blob/1ae3ec64947b7a5331b186f1b1138fc98c0f1c06/ch1/lissajous/main.go) から来ています。アニメーションを表示しようとすると、GIF はレンダリングされません。 gif レンダリング ソフトウェア エラー:
.gif 2016 年から基準が変わったのでしょうか、それとも私が何か間違ったことをしているのでしょうか?
リーリービルドおよび実行コマンドは次のとおりです:
// copyright © 2016 alan a. a. donovan & brian w. kernighan. // license: https://creativecommons.org/licenses/by-nc-sa/4.0/ // lissajous generates gif animations of random lissajous figures. package main import ( "image" "image/color" "image/gif" "io" "math" "math/rand" "os" ) var palette = []color.color{color.white, color.black} const ( whiteindex = 0 // first color in palette blackindex = 1 // next color in palette ) func main() { lissajous(os.stdout) } func lissajous(out io.writer) { const ( cycles = 5 // number of complete x oscillator revolutions res = 0.001 // angular resolution size = 100 // image canvas covers [-size..+size] nframes = 64 // number of animation frames delay = 8 // delay between frames in 10ms units ) freq := rand.float64() * 3.0 // relative frequency of y oscillator anim := gif.gif{loopcount: nframes} phase := 0.0 // phase difference for i := 0; i < nframes; i++ { rect := image.rect(0, 0, 2*size+1, 2*size+1) img := image.newpaletted(rect, palette) for t := 0.0; t < cycles*2*math.pi; t += res { x := math.sin(t) y := math.sin(t*freq + phase) img.setcolorindex(size+int(x*size+0.5), size+int(y*size+0.5), blackindex) } phase += 0.1 anim.delay = append(anim.delay, delay) anim.image = append(anim.image, img) } gif.encodeall(out, &anim) // note: ignoring encoding errors }
解決策
Usebufio.newwriter
以上がGo での .gif のレンダリングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

大企業または有名なオープンソースプロジェクトによって開発されたGOのどのライブラリが開発されていますか? GOでプログラミングするとき、開発者はしばしばいくつかの一般的なニーズに遭遇します...

Go Crawler Collyのキュースレッドの問題は、Go言語でColly Crawler Libraryを使用する問題を調査します。 �...

Go言語での文字列印刷の違い:printlnとstring()関数を使用する効果の違いはGOにあります...

ポインター構文とviperライブラリの使用における問題への取り組みGO言語でプログラミングするとき、特にポインターの構文と使用を理解することが重要です...

GO言語で構造を定義する2つの方法:VARとタイプのキーワードの違い。構造を定義するとき、GO言語はしばしば2つの異なる執筆方法を見ます:最初...

GOのマップイテレーションにより、すべての値が最後の要素になるのはなぜですか? Go言語では、いくつかのインタビューの質問に直面したとき、あなたはしばしば地図に遭遇します...

redisstreamを使用してGo言語でメッセージキューを実装する問題は、GO言語とRedisを使用することです...
