• 締切済み

Photoshop CSでのjavascriptでPDFをオープンの仕方

Photoshop CS でPDFを開いてJPGに保存というJavaScriptを 書いているのですが、PDFを開く段階でうまくいきませんでした。 指定のピクセルサイズと解像度にしたいのですが、まったく 違う大きさになってしまいます。 何か間違えている箇所があるのでしょうか? 宜しければご教授下さい。 ------------------------------- fileObj = new File("D:/data/sample.pdf"); pdfOpt = new PDFOpenOptions(); preferences.rulerUnits = Units.PIXELS; pdfOpt.antiAlias = true; pdfOpt.constrainProportions = false; pdfOpt.width = 1000; pdfOpt.height = 1000; pdfOpt.mode = OpenDocumentMode.RGB; pdfOpt.resolution = 300; pdfOpt.page = 1; open(fileObj,pdfOpt); -----------------------------

  • rezo
  • お礼率63% (12/19)

みんなの回答

  • grazie
  • ベストアンサー率56% (200/355)
回答No.1

ファイルを開くときに変更するのではなく、 開いた後に変更するようにしましょう。

関連するQ&A

  • OpenGLで描画した画像のピクセル(RGB)を配列に格納したい。

    初めまして。taka-0910と申します。 現在、OpenGLを使って描画した画像のピクセル情報を取得しようと考えています。 しかし、取得したRGBの値が描画したものとまったく異なる値となってしまいます。 glReadPixels()という関数で試していますが、何度修正してもうまくいきません。よろしくお願いします。 プログラムの一部ですがこのようになっています。プログラムが一部分で申し訳ありません width, heightというのは、画像のサイズです。 *pixelsに画素(RGB)の値を格納したいと考えています。 GLubyte *pixels; pixels = ( GLubyte* )malloc( width * height * 3 * (sizeof(GLubyte))); glReadBuffer(GL_FRONT); glPixelStorei( GL_PACK_ALIGNMENT,1 ); glReadPixels( 0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, pixels ); glFlush();

  • Photoshop JavaScript でFontの設定ができない

    WinXP上でPhotoshopCS2のJavaScriptのプログラムを書いています。 CS2に付いていたテキストレイヤーの設定例WorkingWithText.jsx (添付)に1行足してフォントの設定を行おうとしたのですが、どうも うまく動きません。エラーにはなりませんが、フォントの設定が無視されます。どのように書けばいいのか教えてください。 ..... newTextLayer.kind = LayerKind.TEXT; newTextLayer.textItem.font = "Courier New"; ←この行を足しています。 newTextLayer.textItem.contents = "Hello, World!"; よろしくお願いします。 // Copyright 2002-2005. Adobe Systems, Incorporated. All rights reserved. // Create a new art layer and convert it to a text layer. // Set its contents, size and color. // enable double clicking from the Macintosh Finder or the Windows Explorer #target photoshop // in case we double clicked the file app.bringToFront(); // debug level: 0-2 (0:disable, 1:break on error, 2:break at beginning) // $.level = 0; // debugger; // launch debugger on next line var strtRulerUnits = app.preferences.rulerUnits; var strtTypeUnits = app.preferences.typeUnits; app.preferences.rulerUnits = Units.INCHES; app.preferences.typeUnits = TypeUnits.POINTS; var docRef = app.documents.add(7, 5, 72); // suppress all dialogs app.displayDialogs = DialogModes.NO; var textColor = new SolidColor; textColor.rgb.red = 255; textColor.rgb.green = 0; textColor.rgb.blue = 0; var newTextLayer = docRef.artLayers.add(); newTextLayer.kind = LayerKind.TEXT; newTextLayer.textItem.font = "Courier New"; newTextLayer.textItem.contents = "Hello, World!"; newTextLayer.textItem.position = Array(0.75, 0.75); newTextLayer.textItem.size = 36; newTextLayer.textItem.color = textColor; app.preferences.rulerUnits = strtRulerUnits; app.preferences.typeUnits = strtTypeUnits; docRef = null; textColor = null; newTextLayer = null;

  • JavaScriptでWindowを開いてPDFの特定ページを表示したい。

    お世話になります。 Web上でPDFを公開したいのですが、ある理由から、JavaScriptでウィンドウをオープンさせてPDFを表示させたいのですが、ファイルが大きいので、利便性を考えて、親ウインドウから押すボタンの違いによって、表示させるページを変えたい、つまり、ページ指定をしたいのですが、うまくいきません。 ローカルではうまくいくのですが、サーバーにあげるとエラーが出てしまいます。ディレクトリの指定とかがおかしいのかと思っていろいろやってみたのですが、JavaScriptでPDFのページ指定を解除すると、表示されるので、JavaScriptではPDFのページ指定機能がサポートされていないのかな・・・?と思うのですが、どうなのでしょうか?何か良い回避方法はありませんでしょうか? 最悪、PDFを見出し毎にバラすということも考えていますが、作業が大変なのでなんとかページ指定が利くようにしたいのです。 ※9ページにリンクを張っているがエラーが出て表示されない。 <!-- function a000001(){ win1=window.open("a/a0000.pdf #page=9","a000001","width=800,height=900"); } //--> ※ページ指定を消すと、PDFは表示される。(当然のことながら、望んだページには飛ばない・・・) <!-- function a000001(){ win1=window.open("a/a0000.pdf ","a000001","width=800,height=900"); } //-->  よろしくおねがいします。

  • カラー画像からグレースケール画像フォーマットの変換

    カラー画像からグレースケール画像フォーマットの変換するプログラムなんですが、いまいち理解できていません。 プログラムはRGB構造体を使ってのものなんですが添削お願いいたします。 #include<stdio.h> #include<stdlib.h> typedef struct _RGB { unsigned char r; unsigned char g; unsigned char b; } RGB; int main(int argc, char *argv[]) { int x, y; unsigned char *in, *out; int i, j, Magic, level; unsigned char tmp[255]; RGB **pixels; int width = 255; int height = 255; int size = width * height; FILE *fin, *fout; if(argc != 3){ printf("Usage : %s input outpu \n", argv[0]); exit(1); } fin = fopen(argv[1], "rb"); fgets(tmp, 255, fin); if(tmp[0] != 'P'){ return 0; } sscanf(tmp, "P%d", &Magic); if(Magic < 1 || Magic > 6){ return 0; } do{ fgets(tmp, 255, fin); } while(tmp[0] == '#'); sscanf(tmp, "%d %d", &x, &y); if(x < 1 || y < 1){ return 0; } fgets(tmp, 255, fin); sscanf(tmp, "%d", &level); printf("P%d\n", &Magic); printf("%d %d\n", x, y); printf("%d\n", level); in = (unsigned char *)malloc(sizeof(unsigned char) *x*y); fread(in, sizeof(unsigned char), x*y, fin); pixels = (RGB**)malloc(width*sizeof(RGB*)); pixels[0] = (RGB* )malloc(size * sizeof(RGB)); for(i = 1; i < width; i++){ pixels[i] = pixels[i - 1] + height; } free(pixels[0]); for(i = 1; i < width * height * 3; i++){ out[i] = pixels[i][0].r * 0.299 + pixels[i][1].g * 0.587 + pixels[i][2].b * 0.114; } fout = fopen(argv[2], "wb"); fprintf(fout,"P%d\n",Magic); fprintf(fout,"# My new PGM\n"); fprintf(fout,"%d %d\n",x, y); fprintf(fout,"%d\n",level); fwrite(out, sizeof(unsigned char),x*y, fout); free(pixels); free(in); free(out); free(fin); free(fout); }

  • JavaScriptが分からなくて困っています…

    私は学校でJSを使ってIllustratorを動かしてみようということでまず読み解くところから始まりました。 しかし、今回のこのコードを読み解くことが難しく教えてはいただけないでしょうか…。 今現在も解読をしているのですがどうしてもわかりません… PPTにまとめて説明発表しなくてはなりません。 記入例としては var saveFolderObj = Folder.selectDialog("PDFファイルを保存するフォルダを選択してください");// セレクトダイアログを表示してPDFファイルを保存するフォルダを選択する。 といったようにどういう動作の支持をしているのかを書かなければなりません。 お願いします助けてください… // タブ区切りテキストからデータを読み込み,テキストを入れ替えPDFファイルとして保存する (function(){ var TAB = String.fromCharCode(9);// タブコード var saveFolderObj = Folder.selectDialog("PDFファイルを保存するフォルダを選択してください"); if (!saveFolderObj) return;// キャンセルされたら処理しない var fileObj = File.openDialog("ひな形ファイルを選択してください","*", false); if (!fileObj) return;// キャンセルされたら処理しない var datafileObj = File.openDialog("タブ区切りテキストファイルを選択してください", "*", false); if (!datafileObj) return;// キャンセルされたら処理しない if (!datafileObj.open("r")){ alert("ファイルが開けません"); } var tag = datafileObj.readln().split(TAB); while(!datafileObj.eof){ app.open(fileObj); var txtObj = app.activeDocument.textFrames; var data = datafileObj.readln().split(TAB);// 一行=1人分のデータを読み込む for(var i=0; i<txtObj.length ;i++){// 全てのテキストフレームに対して処理 for(var j=0; j<tag.length; j++){// ##タグの数だけ繰り返す if (txtObj[i].contents == tag[j]){// 完全一致 txtObj[i].contents = data[j];// テキスト入れ替え } } } savePDF(saveFolderObj.fullName+"/"+data[0]+".pdf");// 名前で保存 app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);// 保存せず閉じる } })(); // PDFファイルとして保存 function savePDF(savefile){ savefile = new File(savefile); var opt = new PDFSaveOptions(); //PDFSaveOptionsを定義 var flatOpts = new PrintFlattenerOptions(); //flattenerOptionsを別指定 flatOpts.overprint = PDFOverprint.PRESERVEPDFOVERPRINT; //オーバープリント flatOpts.gradientResolution = 300.0; //グラデーション解像度 flatOpts.rasterizationResolution = 300.0; //ラスタライズ解像度 flatOpts.clipComplexRegions = true; //複雑な領域をクリップ flatOpts.convertTextToOutlines = true; //テキストをアウトラインに flatOpts.flatteningBalance = 100.0; //100でベクトル0でラスタ opt.compatibility = PDFCompatibility.ACROBAT8; //バージョン指定 opt.bleedLink = true; //ドキュメントの裁ち落とし opt.ColorProfileID = ColorProfile.INCLUDEALLPROFILE; //プロファイルの埋め込み activeDocument.saveAs(savefile, opt); //ファイルを保存 }

  • PHP ファイルアップロードの縮小方法(比率)

    初めまして。PHP の初心者で勉強中なのですが、 ファイルのアップロードの際に確認として 画像を指定範囲に表示したいと考えています。 参考サイトで http://usualcms.net/contents/index/page/49/middle/201106/ で縮小する事ができ、 http://usualcms.net/contents/index/page/31/middle/201106/category_id/ で比率を変えずに縮小する関数の定義 とあるのですが、この二つを組み合わせて試行錯誤したのですが 行き詰まってしまいました。 <?php function getImgSize ($path, $new_width, $new_height) {        $size = array();        list ($getWidth,$getHeight) = getimagesize ($path);        $w = $new_height / $getHeight * $getWidth;        $h = $new_width / $getWidth * $getHeight;        //幅と高さの両方が指定より小さい場合        if ($getWidth <= $new_width && $getHeight <= $new_height) {                $size['new_width'] = (int)$getWidth;                $size['new_height'] = (int)$getHeight;        //幅が指定より大きい場合        } else if ($w >= $new_width && $h < $new_height) {                $size['new_width'] = (int)$new_width;                $size['new_height'] = (int)$h;        //高さが指定より大きい場合        } else if ($w < $new_width && $h >= $new_height) {                $size['new_width'] = (int)$w;                $size['new_height'] = (int)$new_height;        }        return $size; } if (isset($_POST['index_submit'])) {               $type = $_FILES['upfile1']['type'];               if ($type == 'image/jpeg' || $type == 'image/gif'                                                         || $type == 'image/png') {                       $ext = str_replace('image/', '', $_FILES['upfile1']['type']);                       $path = 'image.'.$ext;             move_uploaded_file($_FILES['upfile1']['tmp_name'], $path);            $new_width = 200;            $new_height = 200;             $new_image = imagecreatetruecolor ($new_width, $new_height);            if ($type == 'image/jpeg') {                            $image = imagecreatefromjpeg ($path);            } else if ($type == 'image/gif') {                            $image = imagecreatefromgif ($path);             } else if ($type == 'image/png') {                            $image = imagecreatefrompng ($path);             }             imagecopyresampled ($new_image,$image,                    0,0,0,0,$new_width,$new_height,                     $getWidth,$getHeight            );             imagejpeg ($new_image, $path, 100);             echo "<img src='".$path."' />";          } else {            var_dump ('error');  } } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> </head> <body> <form enctype="multipart/form-data" method="post"           action="<?php echo $_SERVER['PHP_SELF']; ?>" > <input type="file" name="upfile1" /><br /> <input type="submit" name="index_submit" /> </form> </body> </html> 定義したgetImgSize関数がうまく結びついていないのは自分でも分かるのですが、 getImgSize関数を機能させる方法がうまく分からず悩んでいます。 お分かりになる方からすればご指摘だらけかと思いますが、 お力を貸していただければ大変うれしく思います。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • PHP GD 画像が縮小できない

    宜しくお願いします。 ※ローカル環境です。 (WinXP PHP5 Smarty PEAR MySQL ※GDはインストされています。) 下記のコードで、サーバーにもともと上げてある画像(jpeg)を縮小して、 それをブラウザに表示させようと思います。 ですが、縮小されずに、元の画像サイズのまま表示されてしまいます。 おかしな点をご指摘下さいませ。 また、(1)で、 jpegファイルを取り込むコードがありますが、これは、 もし画像がGIFであったりPNGの場合を顧慮するなら、 取り込む際にそれぞれを判定するのが基本でしょうか? もし、今回のようにサバー元の画像をリサイズするのであれば、拡張子もわかっていますので、 jpegファイルだけのことを考えればいいですが、 たとえば、任意のアップロードされたファイルを扱う場合は、上記3種類を判定すして処理すべきですよね? 以上、2点を回答下さいませ。 // -- (1) // 画像を読み込む。 $file_path = "http://www元画像.com/img/aa.jpg"; $image = ImageCreateFromJPEG($file_path); //JPEGファイルを読み込む /*********** $image = ImageCreateFromGIF($file_path); //GIFファイルを読み込む $image = ImageCreateFromPNG($file_path); //PNGファイルを読み込む ************/ // -- (2) // 画像のサイズを取得。 $width = ImageSX($image); //横幅(ピクセル) $height = ImageSY($image); //縦幅(ピクセル) // -- (3) // 縮小した画像のサイズを決める。 $new_width = 100; $rate = $new_width/$width; //圧縮比 $new_height = $rate*$height; // -- (4) // 空の画像を作成する。 $new_image = ImageCreateTrueColor($new_width, $new_height); // -- (5) // サンプリングしなおす  ImageCopyResampled($new_image,$image,0,0,0,0,$new_width,$new_height,$width,$height); // -- (6) // ブラウザに出力する場合。 ImageJPEG($image); //ImageJPEG($image,'simpletext.jpg'); //ImageGIF($image); //環境によっては使えない //ImagePNG($image); // -- (7) // メモリを解放する。 imagedestroy ($new_image); imagedestroy ($image);

    • ベストアンサー
    • PHP
  • 一次元配列から画像を生成するとき。。。

    お世話になります。 カラー画像をjavaプログラムで読み込み、グレースケース化して画像を生成したいのですが、最後の画像生成の部分がうまくいきません。具体的には、 Image img_gray = createImage(new MemoryImageSource(w idth,height,rgb_gray,0,width)); として、img_grayという画像ファイルに変換しようとしています。しかし、コマンドプロンプトでコンパイルしようとすると、 C:\QR>javac Sample.java Sample.java:78: static でない メソッド createImage(java.awt.image.ImageProducer) を static コンテキストから参照することはできません。 Image img_gray = createImage(new MemoryImageSource(width,height, rgb_gray,0,width)); というエラーが出てしまいます。原因が分かりません。どなたか解決策を教えていただける方おられましたらよろしくお願いします。 以下にソースを貼っておきます。 import java.io.*; import java.lang.*; import java.awt.*; import java.awt.Color; import java.awt.color.ColorSpace; import java.awt.event.*; import javax.swing.*; import javax.imageio.ImageIO; import javax.media.*; import javax.media.control.*; import javax.media.format.*; import javax.media.util.*; import java.awt.image.*; import java.applet.*; import java.awt.image.BufferedImage; import javax.imageio.ImageIO; import java.io.File; import java.io.IOException; import java.util.*; import java.text.*; public class Sample extends JPanel{ static BufferedImage image; //static BufferedImage change_image; public static void main(String[] args) { //************************************************************************************************ try { //画像ファイルのデータを読み込む image = ImageIO.read(new File("C:\\QR\\imagefile\\sa.bmp")); } catch (Exception e) { e.printStackTrace(); image = null; } // *********************************************************************************************** //グレースケール int i,j,r,g,b,d; Color color; int width = image.getWidth(); int height = image.getHeight(); int size = width * height; int[] rgb_src=new int[size]; int[] rgb_gray=new int[size]; PixelGrabber grabber= new PixelGrabber(image,0,0,width,height,rgb_src,0,width); try{ grabber.grabPixels(); //画像imageを配列rgb_src[]に読み込む }catch(InterruptedException e){} //カラー画像をグレイ化する for(i=0;i<size;i++){ color=new Color(rgb_src[i]); r=color.getRed(); //赤の成分を取り出す g=color.getGreen(); //緑の成分を取り出す b=color.getBlue(); //青の成分を取り出す d=(int)(r*0.299+g*0.587+b*0.114); //グレイの成分を作る(NTSC方式準拠) color=new Color(d,d,d); rgb_gray[i]=color.getRGB(); } Image img_gray = createImage(new MemoryImageSource(width,height,rgb_gray,0,width)); } }

    • ベストアンサー
    • Java
  • window.openについて

    お世話様です。 早速本題なんですが画像のサムネイルページがあります。 そのページからサムネイルをクリックすると新しいウィンドウを開き元画像を表示するのですが、すべてサイズが違うためヘッダに <script language="JavaScript" type="text/javascript"> <!-- function openwin(url, w, h) { window.open(url,"","width=" + w + ",height=" + h); } // --> </script> と書いて、リンク<a>に onclick="openwin(this.href, 800, 600); return false;" とリンク1つづつに数値(幅,高さ)を変えながら入れて、 サムネイルが指定したサイズで新規ウィンドウとして開くところまでは至りました。 ですが、これでは、サムネイルをクリックする度に新規ウィンドウが開いてしまいます。ウィンドウの名前を指定しようと思い、 ヘッダを function openwin(url, name, w, h) { window.open(url, name, "width=" + w + ",height=" + h); とかえ、リンクを onclick="openwin(this.href, new, 800, 600); return false;" と変えました。 これでいけるかと思ったのですが、サムネイルと同じウィンドウに開かれてしまいます。さて、、、自分の力量はこんな程度で、もうわかりません。 どうすれば、アタらしいウィンドウの名前を指定出来るのか、 初歩的なところかもしれませんがご教授よろしくお願い致します。

  • vector配列の重複を無くすには?

    画像処理で各ピクセルごとのRGB値をそれぞれ取得し、 重複を除いた形で全て表示したいと考えています。 (仮に4ピクセルしかないとして、RGB(255,255,0), RGB(255,255,255),RGB(255,255,255),RGB(255,0,255) といった値が取れたときにRGB(255,255,0), RGB(255,255,255),RGB(255,0,255)のみを表示するといった感じです。) 画像ごとにピクセル数が異なり分からないので、 各ピクセルのRGB値を格納するのに動的配列vector<int*> pixelを 用い、そこにred,green,blueそれぞれの値を格納した 配列RGB[3]を格納しようと思い以下のように書いたのですが、 vector配列に配列を格納したときに重複を削除する方法が 分からず困っています。 for(int x = 0; x->width; x++) { for(int y = 0; y->height; y++) { /*getRGBはそのピクセルのRGB値を取得する仮想関数*/ RGB[0] = (int)getRGB(x,y,RED); RGB[1] = (int)getRGB(x,y,GREEN); RGB[2] = (int)getRGB(x,y,BLUE); } } pixel.push_back(RGB); と格納しても、そこからpixel配列に格納された物の中から RGBが全て一致するものを消去する方法が分かりません。 格納していたものが配列でなければ、pixelをsortして、 unique関数で重複を無くせるのでしょうが… どなたか良い方法をご教授願えませんでしょうか?